如何在Now Reading wordpress插件中随机选择书籍?

时间:2011-05-16 09:27:58

标签: wordpress wordpress-plugin

我在wordpress项目中使用'Now Reading'插件。在插件的侧边栏模板中,我正在使用此查询:     while(have_books('status = read& orderby = finished& num = 2')):the_book(); 选择2本书。 我应该传递什么参数才能使其随机?我试过'order = rand'和'rand = true',但它没有用。 任何帮助将不胜感激! 提前谢谢..

1 个答案:

答案 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本最新的书籍,将它们全部添加到一个新的数组中,然后将该数组洗牌。虽然可能有点臃肿。