WordPress使用下拉菜单按日期和标题对帖子进行排序

时间:2021-04-28 作者:ergoProxy

我正在尝试设置一个下拉列表,可以按最新到最旧以及字母顺序对我的帖子进行排序。这就是我目前的情况:

我声明了一个空变量,然后是一个可以更改此空变量内容的表单。

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;?>
我怎样才能做到这一点?

提前感谢您的帮助!

1 个回复
最合适的回答,由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\'])
); 
使用循环显示帖子