По сути, я хочу позволить пользователю выбирать, какие файлы шаблонов он или она хочет использовать в сообщении:
одиночный 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; ?>
одиночный-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
файлом шаблона.
(пример ASC и DESC приведен только для справки, эти два шаблона будут иметь разный код)
Любые предложения для достижения этого?
Под «пользователем» вы подразумеваете автора сообщения или посетителя, просматривающего страницу?
@goldenapples посетитель.
Один вопрос. Во втором примере значение после
=
должно быть допустимым значением WordPress? или я могу разместить что-нибудь там? Например,url + ?my_sort=most-voted
(В данном случае я хочу сортировать посты по голосованию).@janoChen: все, что вам нравится, потому что вы просто перенаправляете его. Однако ваша страница шаблона должна быть действительной страницей WordPress.
Если различия на страницах — это просто аргументы запроса, вы можете добавить переменные запроса и использовать их в одном и том же шаблоне:
ваш запрос должен выглядеть так:
и ваши ссылки для пользователя должны быть:
Теперь, если ваши различия в страницах больше, чем аргументы запроса, вы можете изменить страницу шаблона с помощью
template_redirect
хука:так же, как и раньше, добавьте аргумент запроса
затем добавьте функцию в хук template_redirect и создайте перенаправление на основе этого аргумента:
и еще раз вам нужно будет добавить аргументы к ссылке так: