Intereting Posts
Конфликтующие сессии пользователей WordPress PHP Создание настраиваемого плагина типа сообщения – продолжайте получать белый экран смерти Как заставить название виджета принимать php? Как добавить пользовательский шрифт в тему Изменить заголовки в списке администраторов Форма контакта 7 – как манипулировать данными до отправки почты? Локализация, escape html элементы среднего предложения Single_template для настраиваемого типа сообщений, созданного из плагина, возвращает пустую страницу Замените динамическое содержимое в таблице пользовательской базы данных, когда создается пользовательский пост Как получить название таксономии от пули? get_option и список опций отдельные сообщения, чтобы иметь (вид) 2 блогов? Добавить название изображения в ссылку изображения в сообщение Скрипт для дублирования категорий как тегов Как добавить и очистить пользовательские типы сообщений и таксономии в плагине? Рассмотрение существующих данных

Можно ли дать пользователю возможность выбрать между двумя отдельными файлами шаблонов для использования в сообщении?

В принципе, я хочу разрешить пользователю выбирать файлы шаблонов, которые он или она хочет использовать в сообщении:

single-asc.php :

<?php $custom_posts = new WP_Query(); ?> <?php $custom_posts->query('post_type=bbp_topic&order=ASC'); ?> <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?> <div class="content-block-2"> <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a> </div> <?php endwhile; ?> 

single-desc.php :

  <?php $custom_posts = new WP_Query(); ?> <?php $custom_posts->query('post_type=bbp_topic&order=DESC'); ?> <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?> <div class="content-block-2"> <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a> </div> <?php endwhile; ?> 

В этом примере пользователь может выбрать (возможно, щелкнув ссылку), чтобы увидеть сообщение с single-asc.php шаблона single-desc.php или файлом шаблона single-desc.php .

(пример ASC и DESC предназначен только для справки, эти два шаблона будут иметь разный код)

Любые предложения для этого?

Solutions Collecting From Web of "Можно ли дать пользователю возможность выбрать между двумя отдельными файлами шаблонов для использования в сообщении?"

Если различия в страницах являются только аргументами запроса, вы можете добавить квоты запросов и использовать их в одном шаблоне:

 //add your arguments to query vars add_filter('query_vars', 'my_query_vars'); function my_query_vars($vars) { // add my_sortand ptype to the valid list of variables you can add as many as you want $new_vars = array('my_sort','ptype'); $vars = $new_vars + $vars; return $vars; } 

ваш запрос должен выглядеть так:

 <?php $custom_posts = new WP_Query(); ?> <?php $custom_posts->query(array('post_type' => get_query_var('ptype'), 'order' => get_query_var('my_sort'))); ?> <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?> <div class="content-block-2"> <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a> </div> <?php endwhile; ?> 

и ваши ссылки для пользователя должны быть:

  • ASC: url +? Ptype = bbp_topic & my_sort = ASC
  • DESC: url +? Ptype = bbp_topic & my_sort = DESC

Теперь, если ваши отличия в страницах больше, чем аргументы запроса, вы можете изменить страницу шаблона с помощью template_redirect hook:

то же, что и раньше, добавьте свой запрос arg

  //add your arguments to query vars add_filter('query_vars', 'my_query_vars'); function my_query_vars($vars) { // add my_sort to the valid list of variables $new_vars = array('my_sort'); $vars = $new_vars + $vars; return $vars; } 

затем добавьте функцию в hook_redirect и создайте перенаправление на основе этого аргумента:

 add_action("template_redirect", 'sort_template_redirect'); // Template selection function sort_template_redirect() { global $wp; global $wp_query; if (isset($wp->query_vars["my_sort"])) { // Let's look for the template file in the current theme if (array_key_exists('my_sort', $wp->query_vars) && $wp->query_vars['my_sort'] == 'ASC'){ include(TEMPLATEPATH . '/single-asc.php'); die(); } if (array_key_exists('my_sort', $wp->query_vars) && $wp->query_vars['my_sort'] == 'DESC'){ include(TEMPLATEPATH . '/single-desc.php:'); die(); } } } 

и еще раз вам нужно будет добавить аргументы к ссылке так:

  • ASC: url +? My_sort = ASC
  • DESC: url +? My_sort = DESC