在评论模板中显示来自多个帖子ID的评论

时间:2012-07-25 作者:sr83

这听起来可能是一个不寻常的请求,但我试图在一个评论模板中显示来自多个相关帖子的评论。

例如,我有几篇关于同一主题的帖子(IDs 253, 724, 798) 我希望这些帖子中的所有评论都能出现在下一个连续的帖子中。所以如果我在看帖子ID 724 我也可以看到来自帖子的评论253798.

我可以通过多个帖子吗ID要实现这一点,是否需要在注释模板之前或之后进行自定义查询,以显示合并线程中的所有注释?

2 个回复
SO网友:pcarvalho

您可以通过每个帖子的id获取评论

$comments253 = get_comments(\'post_id=253\');
$comments724 = get_comments(\'post_id=724\');
$comments798 = get_comments(\'post_id=798\');
然后合并(数组合并)并按日期对数组排序(comment->comment\\u date是日期值的键)。那就

 foreach($comments as $comment) :
      echo($comment->comment_author . \'<br />\' . $comment->comment_content);
 endforeach;
这都是非常手动的,您可能希望将过程自动化,但这可能是另一回事。

SO网友:fuxia

获取多篇帖子的评论非常简单:只需替换comment_post_ID = YOUR_POST_ID 使用IN() 作用

function wpse_59687_multiple_comment_post_id_query_filter( $query )
{
    $post_ids = array ( 149, 188, 151 );
    if ( FALSE === strpos( $query, \'comment_post_ID = \' ) )
    {
        return $query; // not the query we want to filter
    }

    remove_filter( \'query\', \'wpse_59687_multiple_comment_post_id_query_filter\' );

    $replacement = \'comment_post_ID IN(\' . implode( \',\', $post_ids ) . \')\';
    return preg_replace( \'~comment_post_ID = \\d+~\', $replacement, $query );
}
现在在调用之前调用此函数comments_template():

add_filter( \'query\', \'wpse_59687_multiple_comment_post_id_query_filter\' );
更困难的是:

  • get_comments_number() 这是错误的。你也必须过滤它的值

结束

相关推荐

Q&A lite plugin comments

我正在尝试Q&A lite plugin from WPMU. 除了一件事,它看起来很棒。看起来用户只能问和答问题,不能对他们发表评论。这有效地缩短了两个用户之间的对话。一个问题,一个答案,就是这样,当然除了其他用户的答案,但不可能有这样的对话,我对它的有效性感到困惑。有人能告诉我我是不是用错了吗?我想不会,但如果我是,我想知道,否则谁能推荐类似的东西。