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

如何为Yoast SEO插件批量添加自定义替换变量?

批量为Yoast SEO添加自定义替换变量的解决方案

哎,我懂你遇到的问题了!之前你想一次性给Yoast SEO加多个自定义替换变量,直接返回数组没生效对吧?其实是因为Yoast的wpseo_register_var_replacement函数是用来单个注册替换变量的,它并不支持直接接收数组形式的定义,得换个方式批量处理才行~下面给你两种可行的实现方案:

方案一:独立回调函数+批量注册

这种方式适合需要复杂逻辑的变量,先给每个变量单独写好回调函数,再用数组映射+循环的方式完成批量注册:

// 定义多个自定义替换的回调函数
function get_myname() {
    return 'My name is Moses';
}

function get_mywebsite() {
    return 'https://myawesomewebsite.com';
}

function get_current_post_category() {
    // 示例:获取当前文章的第一个分类名称(需在文章上下文执行)
    $categories = get_the_category();
    return !empty($categories) ? $categories[0]->name : '未分类';
}

// 批量注册Yoast自定义替换变量
function leweb_yoast_multiple_variables() {
    // 建立变量与回调函数的映射:键是Yoast变量名(必须带%%),值是回调函数名
    $yoast_var_map = array(
        '%%myname%%' => 'get_myname',
        '%%mywebsite%%' => 'get_mywebsite',
        '%%postcategory%%' => 'get_current_post_category'
    );

    // 循环遍历映射数组,逐个注册变量
    foreach ($yoast_var_map as $var_tag => $callback_func) {
        // 最后一个参数是变量描述,方便在Yoast后台识别自定义变量
        wpseo_register_var_replacement($var_tag, $callback_func, 'advanced', '自定义替换变量');
    }
}

// 绑定到Yoast官方推荐的钩子,确保在Yoast初始化完成后执行注册
add_action('wpseo_register_extra_replacements', 'leweb_yoast_multiple_variables');

方案二:匿名函数简化写法(适合固定值或简单逻辑)

如果你的变量是固定值或者逻辑很简单,可以用匿名函数来减少代码量(PHP 5.3及以上版本支持):

function leweb_yoast_multiple_variables() {
    $yoast_var_map = array(
        '%%myname%%' => function() { return 'My name is Moses'; },
        '%%mycity%%' => function() { return 'New York'; },
        '%%copyrightyear%%' => function() { return date('Y'); } // 示例:动态获取当前年份
    );

    foreach ($yoast_var_map as $var_tag => $callback) {
        wpseo_register_var_replacement($var_tag, $callback, 'advanced', '自定义替换变量');
    }
}

add_action('wpseo_register_extra_replacements', 'leweb_yoast_multiple_variables');

关键注意点

  • Yoast的自定义变量必须以%%开头和结尾,这是官方的格式规范
  • 回调函数必须返回字符串类型的值,否则可能出现显示异常
  • 一定要用wpseo_register_extra_replacements这个钩子,确保注册动作在Yoast SEO初始化完成后执行,避免注册失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:33:30