每个页面上都有相同的评论区

时间:2020-08-26 作者:Fletch Armstrong

我希望基本上有一个统一的评论部分,所以如果用户在a页上发帖,它也会显示在b页上。

我在网上搜索过,但找不到任何关于这方面的文档,我想知道这是否容易实现,因为我对wordpress编码等完全陌生,但我觉得在每个页面上调出相同的评论部分不会太难,但我可能错了!

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

通过一些测试,这似乎可以通过两个过滤器实现。

首先,您希望将前端评论查询设置为查询所有帖子的评论,而不仅仅是当前帖子的评论。可以这样做:

add_action(
    \'pre_get_comments\',
    function( $comment_query ) {
        if ( ! is_admin() ) {
            $comment_query->query_vars[\'post_id\'] = 0;
        }
    }
);
然而,评论模板中的一些逻辑将基于WordPress认为帖子拥有的评论数量。这存储在每个帖子上,作为comment_count 出于性能原因,请将其与注释查询分开,因此仅更改要查询的注释不会影响此数字。但是get_comments_number 筛选我们可以将每个帖子的评论数替换为网站上的评论总数,如下所示:

add_filter(
    \'get_comments_number\',
    function( $count ) {
        if ( ! is_admin() ) {
            $count = wp_count_comments()->approved;
        }

        return $count;
    }
);

相关推荐

使用htaccess通过wp-Comments-post.php阻止垃圾邮件

我的WordPress网站上有很多垃圾评论。正在使用wp-comments-post.php 文件我可以从日志中看到:\"POST /wp/wp-comments-post.php HTTP/1.0\" 302 3744 \"https://example.com/wp/link/\" \"Mozilla/5.0 (Windows NT 6.1; WOW64) 我已经在我的.htaccess 文件:RewriteEngine On RewriteCond %{REQUEST_METHOD