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

使用$_SERVER['HTTP_REFERER']重写Yoast面包屑时遇数组键未定义错误

解决Yoast面包屑修改中的PHP未定义数组键警告

问题根源

$_SERVER['HTTP_REFERER'] 并非在所有请求场景下都存在——比如用户直接输入URL访问页面时,这个变量就不会生成,直接调用会触发未定义数组键的警告。

修正代码及说明

add_filter('wpseo_breadcrumb_links', 'wpse_332125_breadcrumbs');
function wpse_332125_breadcrumbs($links) {
    if(is_singular('custom-template')) {
        // 先确保目标数组索引存在,避免额外警告
        if (isset($links[2])) {
            // 优先使用HTTP_REFERER,不存在则 fallback 到自定义文章类型的归档页面
            $target_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : get_post_type_archive_link('custom-template');
            
            $links[2] = array(
                'text' => 'Category',
                'url' => $target_url,
                'allow_html' => 2
            );
        }
    }
    return $links;
}

关键优化点

  • 用isset()分别检测$_SERVER['HTTP_REFERER']和$links[2]的存在性,从根源消除警告;
  • 增加get_post_type_archive_link('custom-template')作为备选链接,确保即使没有上一页来源时,面包屑仍指向有效页面,避免用户跳转到无效地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:41:00