在页面正文中插入菜单的快捷代码?

时间:2018-02-01 作者:JPashs

我需要在一页的文本中插入一个菜单。我找到了这两个插件,但都不起作用。这两个版本已经有6年没有更新了:

https://wordpress.org/plugins/custom-menu/

https://wordpress.org/plugins/custom-menu-shortcode/

我找到这段代码来创建我自己的短代码

    function print_menu_shortcode($atts, $content = null) {
extract(shortcode_atts(array( \'name\' => null, \'class\' => null ), $atts));
return wp_nav_menu( array( \'menu\' => $name, \'menu_class\' => $class, \'echo\' => false ) );
}

add_shortcode(\'menu\', \'print_menu_shortcode\');
然后短代码应该是:

[menu name="-your menu name-" class="-your class-"]
它可以工作,但该类根本没有打印出来。What is wrong in the function? 我需要打印班级。

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

该代码应该有效。您是否使用“myclass”作为类而不是“.myclass”?

这是用于类始终相同的特定用途吗?如果您只想在一个地方使用此功能,可以执行以下操作:

    function print_menu_shortcode($atts, $content = null) {
extract(shortcode_atts(array( \'name\' => null, \'class\' => null ), $atts));
return wp_nav_menu( array( \'menu\' => $name, \'menu_class\' => \'myclass\', \'echo\' => false ) );
}

add_shortcode(\'menu\', \'print_menu_shortcode\');
然后用所需的类更改“menu\\u class=”“>“myclass”部分。这将避免使用该类。同样,不要使用“”在这里的全班同学面前。

短代码用法:

[menu name="menu_name"]

SO网友:Robin Joshua Del Mundo

我知道这几年太迟了,但万一有人再次遇到这种情况,您可以使用此代码来包含一个带有您的短代码及其返回值的类。在此之前,我用相应的答案对其进行了修改。

function print_menu_shortcode($atts=[], $content = null) {
    $shortcode_atts = shortcode_atts([ \'name\' => \'\', \'class\' => \'\' ], $atts);
    $name   = $shortcode_atts[\'name\'];
    $class  = $shortcode_atts[\'class\'];
    return wp_nav_menu( array( \'menu\' => $name, \'menu_class\' => $class, \'echo\' => false ) );
}
短代码:[menu name="menu_name" class="your_class"]

我希望这能帮助任何未来可能需要它的人!

结束