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

WordPress中如何为不存在的自定义链接父项分配子页面?

解决WordPress自定义链接菜单作为父项添加子页面的问题

嘿,这个问题我之前帮朋友处理过,默认WordPress菜单编辑器确实没法直接把页面拖到URL为#的自定义链接下面当子项,但有几个靠谱的方法能解决,完全不用创建真实的父页面,还能适配面包屑功能:

方法一:直接在菜单编辑器设置子项层级

这是最基础的操作,先把页面关联到自定义链接父菜单:

  • 先把你要设为子项的页面添加到当前菜单中
  • 找到该页面的菜单条目,点击右侧的下拉箭头展开所有选项
  • 在「父项」的下拉列表里,直接选择你创建的那个名为Parent 1的自定义链接
  • 点击「保存菜单」,刷新前端就能看到页面已经变成自定义链接的子菜单了

方法二:适配面包屑功能的代码调整

因为自定义链接没有对应的页面ID,很多面包屑插件/主题默认不会识别它的父层级,这时候需要针对你的面包屑工具加代码调整:

情况1:使用主题自带的面包屑

打开主题的functions.php文件,添加以下代码(记得替换子页面ID和面包屑函数对应的钩子):

add_filter('breadcrumbs_trail_items', 'custom_breadcrumb_for_custom_parent', 10, 2);
function custom_breadcrumb_for_custom_parent($items, $args) {
    global $post;
    // 替换成你的子页面ID,多个用逗号分隔
    $target_child_pages = array(123, 456);
    if (is_page() && in_array($post->ID, $target_child_pages)) {
        // 在面包屑最前面添加自定义父项
        array_unshift($items, '<a href="#">Parent 1</a>');
    }
    return $items;
}

情况2:使用Yoast SEO面包屑

如果你用的是Yoast的面包屑,就用这个钩子:

add_filter('wpseo_breadcrumb_links', 'yoast_custom_breadcrumb_parent');
function yoast_custom_breadcrumb_parent($links) {
    global $post;
    $target_child_pages = array(123, 456); // 替换成你的子页面ID
    if (is_page() && in_array($post->ID, $target_child_pages)) {
        $custom_parent = array(
            'url' => '#',
            'text' => 'Parent 1'
        );
        // 在当前页面的面包屑前插入自定义父项
        array_splice($links, -1, 0, array($custom_parent));
    }
    return $links;
}

方法三:用插件简化操作

如果不想写代码,可以试试「Advanced Menu Editor」这类插件,它能让你更灵活地调整菜单层级,甚至给自定义链接添加虚拟的页面属性,方便面包屑工具识别父层级。不过建议优先用代码,避免插件过多导致站点臃肿。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:17:04