You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改WordPress代码为不同/go路径链接添加对应自定义属性

WordPress 多/go/路径链接专属属性批量添加方案

原代码仅硬编码支持/go/link-1单一路径的属性添加,要扩展支持多路径分别匹配对应属性,最易维护的方式是用规则映射表改造,后续新增规则不需要改核心判断逻辑,适合新手操作。

核心修改逻辑

  • 新增规则配置数组,把需要特殊处理的/go路径和对应的data-analytics值做一一映射
  • 替换原代码里单一路径的循环判断,改为遍历配置数组匹配链接href
  • 完全保留原代码对站内链接、页内锚点、普通外链的原有处理逻辑,不破坏已有功能

修改后可直接使用的完整代码

function rewrite_links($content) {
  $content = preg_replace_callback(
  '/<a[^>]*href=["|\']([^"|\']*)["|\'][^>]*>([^<]*)<\/a>/i',
    function($m) {
        // 在这里新增/修改链接规则,格式:'/go/路径' => '对应data-analytics值'
        $link_rules = [
            '/go/link-1' => 'Link-1',
            '/go/link-2' => 'Link-2',
            '/go/link-3' => 'Link-3',
            // 需要加新链接规则直接在上面按格式新增行即可
        ];

        $matched_analytics = '';
        // 遍历规则匹配当前链接
        foreach ($link_rules as $path => $analytics_val) {
            if (strpos(strtolower($m[1]), strtolower($path)) !== false) {
                $matched_analytics = $analytics_val;
                break; // 匹配到就停止遍历,节省性能
            }
        }

        // 匹配到专属规则的/go链接
        if (!empty($matched_analytics)) {
            return '<a href="'.$m[1].'" rel="nofollow noopener" target="_blank" data-analytics="'.$matched_analytics.'">'.$m[2].'</a>';
        } 
        // 原有逻辑:站内链接、页内锚点直接返回原代码
        elseif ((strpos(strtolower($m[1]), $_SERVER['HTTP_HOST']) !== false) || (substr($m[1],0,1) == "#")) {
            return $m[0];
        } 
        // 普通外链原有处理逻辑
        else {
            return '<a href="'.$m[1].'" rel="follow noopener" target="_blank">'.$m[2].'</a>';
        }
    },
$content);

  return $content;
}

add_filter('the_content', 'rewrite_links', 100);

后续新增规则方法

如果需要添加新的/go路径(比如/go/link-10对应data-analytics="Link-10"),只需要在$link_rules数组里新增一行配置即可:

'/go/link-10' => 'Link-10',

不需要修改其他任何代码,保存后就会自动生效。


内容的提问来源于stack exchange,提问作者ChadF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 06:48:31