我正在尝试设置一个下拉列表,可以按最新到最旧以及字母顺序对我的帖子进行排序。这就是我目前的情况:
我声明了一个空变量,然后是一个可以更改此空变量内容的表单。
This part doesn\'t work
<?php> $order = \'\'; ?>
<form method="GET">
<select name="orderby" id="orderby">
<option value="<?php echo ($order = \'date\'); ?>">Newest to Oldest</option>
<option value="<?php echo ($order = \'title\'); ?>">Alphabetical</option>
<button type="submit">Apply</button>
</form>
并声明在其中传递变量“orderby”的查询=>$顺序
This part works (I\'m getting a list of all the posts and changing the query manually works as well)
$wpb_all_query = new WP_Query(array(\'post_type\'=>\'post\', \'posts_per_page\'=>-1, \'order\'=>\'ASC\', \'orderby\'=> $order)); ?>
if ( $wpb_all_query->have_posts() ) :
<ul>
<?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif;?>
我怎样才能做到这一点?
提前感谢您的帮助!
最合适的回答,由SO网友:anton 整理而成
在这里,我将orderby属性作为选项值—日期和标题。
<form method="GET">
<select name="orderby" id="orderby">
<option value="date">Newest to Oldest</option>
<option value="title">Alphabetical</option>
<button type="submit">Apply</button>
<form>
在同一页面上,您可以接收select值并设置为orderby属性
$wpb_all_query = new WP_Query(array(
\'post_type\'=>\'post\',
\'posts_per_page\'=>-1,
\'order\'=>\'ASC\',
\'orderby\'=> esc_attr($_GET[\'orderby\'])
);
使用循环显示帖子