开发者

How can I select books randomly in Now Reading wordpress plugin?

I am using 'Now Reading' plugin in a wordpress project. In plugin's sidebar template I am using this query: while( have_books('status=read&orderby=finished&num=2'开发者_运维问答) ) : the_book(); to select 2 books. What parameter should I pass to make it random? I tried with 'order=rand' and 'rand=true' but it did not work. Any help will be appreciated! Thanks in advance..


A random function doesn't actually exist. I have used this code, in my themes functions.php to allow random order before - not sure if it'll work in this situation, but worth a try.

Add this to your themes functions.php file:

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') );

Then try this in your sidebar file:

while( have_books('status=read&orderby=finished&num=2&random=true') ) : the_book();

If not, my only other suggestion would be to get the 10 latest books, add them all to a new array, and then shuffle that array. May be a bit bloated though.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜