Saber 酱的抱枕

Fly me to the moon

08/13
2024
软件

修改 WordPress 生成的文章评论区的导航链接

本站文章标题下面会显示有多少条回复(或显示“无回复”),它是有 URL 的:

上图的链接是我修改后的。之前一直存在的问题是,WordPress 生成的这个链接的末尾是 #comments,但我使用的这个主题的评论区的 id 不是 comments,而是 cmt,所以之前的导航链接并不能起到定位的作用。我怀疑是主题作者图方便所以用了个缩写,但结果却是埋了个坑。

这个链接是 wp-includes/comment-template.php 的 get_comments_link() 生成的:

可以看到,如果这个文章有评论,就在末尾添加 #comments 定位到评论区;如果没有评论,就定位到评论框 #respond

要将 #comments 改为 #cmt,可以在主题的 functions.php 里添加一个钩子,对 get_comments_link 生成的结果进行修改:

// 修改文章标题下的“xx 条回复”的链接末尾的 hash,因为当前主题的评论区 id 是 #cmt
function replace_comment_link( $comment_link ) {
$comment_link = str_replace( '#comments', "#cmt", $comment_link );
return $comment_link;
}
add_filter( 'get_comments_link', 'replace_comment_link', '', 1);

这样就解决了问题。

修改 WordPress 生成的文章评论区的导航链接