我在wordpress项目中使用'Now Reading'插件。在插件的侧边栏模板中,我正在使用此查询: while(have_books('status = read& orderby = finished& num = 2')):the_book(); 选择2本书。 我应该传递什么参数才能使其随机?我试过'order = rand'和'rand = true',但它没有用。 任何帮助将不胜感激! 提前谢谢..
答案 0 :(得分:0)
实际上并不存在随机函数。我已经在我的主题functions.php中使用了这个代码,以允许之前的随机顺序 - 不确定它是否适用于这种情况,但值得一试。
将此添加到主题functions.php文件中:
function query_random_posts($query) {
return query_posts($query . '&random=true');
}
class RandomPosts {
function orderby($orderby) {
if ( get_query_var('random') == 'true' )
return "RAND()";
else
return $orderby;
}
function register_query_var($vars) {
$vars[] = 'random';
return $vars;
}
}
add_filter( 'posts_orderby', array('RandomPosts', 'orderby') );
add_filter( 'query_vars', array('RandomPosts', 'register_query_var') );
然后在侧边栏文件中尝试:
while( have_books('status=read&orderby=finished&num=2&random=true') ) : the_book();
如果没有,我唯一的另一个建议就是获得10本最新的书籍,将它们全部添加到一个新的数组中,然后将该数组洗牌。虽然可能有点臃肿。