使用短码随机输出评论

时间:2021-01-07 作者:Sergey Pervushin

有必要使用快捷码在页面上随机显示评论。现在,我使用以下代码使用快捷码输出注释:

add_action(\'wp_head\', function (){
    global $postPage, $post;
    $postPage = $post;
});

add_shortcode(\'comments_block\',function($attr, $content){
    global $post,$postPage;
    $savePost = $post;
    $post = $postPage;
    ob_start();
    comments_template();
    $output = ob_get_contents();
    ob_end_clean();
    $post = $savePost;
    return $output;
});
这将显示注释,并在其下方显示一个用于添加注释的表单-一切正常。但评论需要随机显示(现在它们是按日期显示的标准)。

我还尝试将此代码与此处提供的代码相结合How can I show comments in random order? , 但我在这方面的知识还不够(

我将非常感谢在这方面提供的任何帮助。

1 个回复
SO网友:Shazzad

简单的方法是覆盖注释查询并设置orderby 属性到rand.

function wpse381090_comment_query_rand( $args ) {
    $args[\'orderby\'] = \'rand\';
    return $args;
}
add_filter(\'comments_template_query_args\', \'wpse381090_comment_query_rand\');

相关推荐

我可以将主循环更改为‘orderby’自定义回调吗?

我有一个自定义的帖子类型title 是一个名称,我想按中的最后一个单词对循环进行排序title, 姓氏。在自定义查询中,我可以轻松地将名称分开并按最后一个单词进行过滤,但我不想重新编写归档页面的主循环/分页。是否可以将回调传递给orderby 操作中的参数pre_get_posts 还是这是一个失败的事业?谢谢