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.
精彩评论