我正在尝试在我的 wordpress 网站中插入一个排序选项。我已经让它工作了,但需要帮助正确地使用它和 wordpress 循环。目前,我有:
在页面上,有按字母顺序或时间顺序排序的选项:
<a href="?sort=date">Newest</a>
<a href="?sort=title">Alphabetical</a>
排序代码从这里开始,放置在循环上方:
<?php $sort= $_GET['sort'];
if($sort == "title") { $order= "'orderby'=>'title','order'=>ASC'"; }
elseif($sort == "date") { $order= "'orderby'=>'date'"; }
else{ $order= "'orderby'=>'date','order'=>'DESC'"; }
?>
注意:我很确定问题出在变量 $order 上面
Wordpress 循环使用变量$order
作为参数
<?php $loop = new WP_Query( array( $order, 'post_type' => 'films', 'post_parent' => 0, 'posts_per_page' => -1 ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
Wordpress loop stuff here
<?php endwhile; ?>
循环正确显示项目,但排序链接不起作用。这段代码与 query_posts 配合得很好,但我试图让它适用于 WP_Query(上图)。这里有什么想法吗?
更新:这种技术在使用如下 query_posts 时效果很好(但我仍然需要它为 WP_Query 工作):
<?php $sort= $_GET['sort'];
if($sort == "title") { $order= "&orderby=title&order=ASC"; }
elseif($sort == "date") { $order= "&orderby=date"; }
else{ $order= "&orderby=date&order=DESC"; }
?>
<?php $posts = query_posts($query_string . $order); ?>
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
Wordpress Stuff Here
<?php endwhile; ?>
<?php endif; ?>