Elementor用Yoast SEO自带的面包屑组件,如何按照主菜单层级来自定义面包屑层级
问题:elementor中引用的Yoast SEO面包屑组件,一般只会按照页面层级/文章层级或分类层级来显示面包屑。如何按照主菜单中显示的层级来自定义面包屑层级?

方案:
可以通过 Yoast SEO 的面包屑过滤器 wpseo_breadcrumb_links 实现,不需要修改 Elementor 页面模板,也不需要改变 WordPress 的页面父子级关系。
/**
* Yoast SEO Breadcrumb:
* 在 Download 页面中插入 Resource 父级
*/
add_filter('wpseo_breadcrumb_links', 'custom_download_breadcrumb');
function custom_download_breadcrumb($links) {
// 只在 Download和FAQS 页面执行
if ( ! ( is_page('download-center') || is_page('faqs') ) ) {
return $links;
}
// Resource 父级导航
$resource_breadcrumb = array(
'url' => home_url('/faqs/'),
'text' => 'Resource',
);
// 防止重复插入
foreach ($links as $link) {
if (
isset($link['text']) &&
$link['text'] === 'Resource'
) {
return $links;
}
}
// 在当前页面名称前面插入 Resource
array_splice(
$links,
count($links) - 1,
0,
array($resource_breadcrumb)
);
return $links;
}
最终效果如下:
