向WordPress子菜单添加菜单标题

时间:2014-09-05 作者:hmakein

我正在使用本地Wordpress菜单。我有两个子菜单的顶级链接-我希望这些子菜单显示父菜单项的名称。因此,如果我有一个名为“Gardens”的父菜单项,其中包含一个子菜单“Flowers”和“Plants”,该子菜单应在顶部显示“Gardens”,然后在其下方列出子菜单链接。

我已经创建了一个walker,在子菜单中插入一些H3标题文本。看起来是这样的:

class Subnav_Header_Walker extends Walker_Nav_Menu
{
    function start_lvl( &$output, $depth = 0, $args = array() ) {
        $heading = \'Heading Text Here\';
        $indent = str_repeat("\\t", $depth);
        $output .= "\\n$indent<ul class=\'sub-menu\'><h3>" . $heading . "</h3>\\n";
    }
    function end_lvl( &$output, $depth = 0, $args = array() ) {
        $indent = str_repeat("\\t", $depth);
        $output .= "$indent</ul>\\n";
    }
}
这不太好,但很管用。现在我只需要一些代码来获取父菜单项的名称。有人能帮我吗?

谢谢

2 个回复
最合适的回答,由SO网友:hmakein 整理而成

我最终从我的函数中删除了这些代码。php文件,并改用jQuery。如果有人想知道,我是如何处理的:

    $(\'.menu-item-has-children > a\').each(function(){
        var submenuHeading = $(this).text();
        $(\'.sub-menu\', ($(this).parent(\'.menu-item-has-children\'))).prepend(\'<h3>\' + submenuHeading + \'</h3>\');
    });

SO网友:Christopher Grigg

您还可以使用Wordpress提供的预定义类来重新创建h3,可能更干净一些。

.menu-item-has-children {
    font-size: 1.7em;
    font-weight: bold;
    line-height: 1.4em;
    margin: 0 0 0.4em 0;
}

https://developer.wordpress.org/reference/functions/wp_nav_menu/#Menu_Item_CSS_Classes

结束

相关推荐

How to add taxonomy in menus?

书籍(自定义帖子类型)小说(税)科学(税)历史(税)--书籍体裁(税务)小说(术语)科学(学期)历史(学期)以下哪一项是做这件事的“好方法”?对于前一个(这是我目前在管理菜单中的功能,我为每个功能都提供了“register\\u taxonomy”功能),我无法选择要在菜单中显示的“Tax”。而对于后者,我可以将它们添加到菜单中,只需要一个“register\\u taxonomy”函数。