2011-05-16 56 views
0

我在wordpress项目中使用'Now Reading'插件。在插件的边栏模板中,我使用以下查询: while(have_books('status = read & orderby = finished & num = 2')):the_book(); 选择2本书。 我应该传递什么参数来使它随机?我尝试了'order = rand'和'rand = true',但它不起作用。 任何帮助将不胜感激! 在此先感谢..如何在Now Reading wordpress插件中随机选择书籍?

回答

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

+0

我终于能够解决它,跟随你的最后方向。但功能

 query_random_posts($query)
不起作用!但是谢谢你的指导。它帮助:) – med 2011-05-22 04:58:09