如何在特定位置插入动态菜单项?

时间:2018-02-07 14:46:43

标签: php wordpress wp-nav-menu-item

我可以使用以下命令将新菜单项放到根级菜单项的末尾:

function bv_show_book_online_menu_item($items, $args) {
    if(bv_can_book_online()) {
        if($args->theme_location == 'main-menu') {
            $items .= '<li><a href="/book/">Book Online</a></li>';
        }
    }
    return $items;
}
add_filter('wp_nav_menu_items','bv_show_book_online_menu_item', 10, 2);

但是我怎样才能在任何我想要的地方插入物品?我实际上想把它放在子菜单的中间,如下所示:

Menu Item
    Submenu Item
    Submenu Item
    <-- Insert new submenu item -->
    Submenu Item
    Submenu Item
Menu Item
    Submenu Item
    Submenu Item
    Submenu Item
etc

1 个答案:

答案 0 :(得分:1)

快速而肮脏的解决方案:

enter image description here

安装menu items visibility control plugin;这允许您通过菜单页面有条件地显示菜单和子菜单项。

添加您自己的&#34; my_function&#34;功能到functions.php或你自己的网站功能插件。当要显示子菜单时,插件应该返回TRUE。

在WP Dashboard菜单页面上,选择可选的子菜单,并将此条件function_exists("my_function") && my_function()添加到其可见性字段中。简单地说:如果找不到my_function,请不要摔倒,只有在my_function返回TRUE时才会显示此子菜单。

我认为这个插件必须在可见性字段中评估条件。从理论上讲,这是一个轻微的安全风险。但是,当我检查插件时,许多支持&amp;评论(几个月前)我无法发现任何提出这一点作为关注点。

如果您对此感到担忧;那么或者您可以从插件源中找到所需的代码