博客 / WordPress/ 非插件实现WordPress阻止站内文章互相Pingback

非插件实现WordPress阻止站内文章互相Pingback

非插件实现WordPress阻止站内文章互相Pingback

非插件实现 WordPress 阻止站内文章互相 Pingback

在 WordPress 中,当您发布一篇包含其他文章链接的新文章时,系统会自动向这些链接发送 Pingback(引用通告)。如果这些链接指向您自己站内的文章,就会产生不必要的站内 Pingback,可能导致评论区域出现冗余通知或影响性能。通过添加一小段代码,我们可以阻止这种站内文章的互相 Pingback。

实现方法

将以下代码添加到您当前主题的 functions.php 文件末尾即可。建议在添加前备份该文件。

/**
 * WordPress 阻止站内文章互相 Pingback
 */
function Bing_noself_pingback( &$links ) {
    $url = get_bloginfo( 'url' );
    foreach ( $links as $key => $value ) {
        if ( strpos( $value, $url ) === 0 ) {
            unset( $links[$key] );
        }
    }
}
add_action( 'pre_ping', 'Bing_noself_pingback' );

代码说明

  • 函数作用:该函数挂钩到 pre_ping 动作,在发送 Pingback 之前执行。
  • 核心逻辑:获取当前网站的 URL,然后遍历所有待 Pingback 的链接。如果某个链接是以本站 URL 开头的(即指向站内),则将其从待发送列表中移除。
  • 技术细节:使用 strpos( $value, $url ) === 0 进行严格判断,确保只有当链接确实以本站 URL 开头时才被移除,避免了误判子字符串匹配的情况。

注意事项

  1. 此方法仅阻止从您自己网站发出的、指向自己站内文章的 Pingback,不影响来自其他网站的 Pingback 或 Trackback。
  2. 代码生效后,新发布的文章将不会对站内旧文章发送 Pingback,但已存在的历史 Pingback 记录不会被删除。
  3. 如果您更换了主题,需要将这段代码复制到新主题的 functions.php 文件中以保持功能。

这是一种轻量级、无需依赖第三方插件的解决方案,有助于保持网站评论区域的整洁。

发表评论

您的邮箱不会公开。必填项已用 * 标注。