0

我可以使用以下方法将新菜单项放置到根级菜单项的末尾:

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
4

1 回答 1

1

快速而肮脏的解决方案:

在此处输入图像描述

安装菜单项可见性控制插件;这允许您通过菜单页面有条件地显示菜单和子菜单项。

将您自己的“my_function”函数添加到functions.php 或您自己的站点功能插件中。当要显示子菜单时,插件应该返回 TRUE。

在 WP Dashboard 菜单页面上,选择可选子菜单并将此条件添加function_exists("my_function") && my_function()到其可见性字段。简单来说:找不到就不要翻倒,只有在返回TRUEmy_function时才显示这个子菜单。my_function

我假设这个插件必须评估可见性字段中的条件。从理论上讲,这是一个轻微的安全风险。但是,当我检查插件的许多支持和评论(几个月前)时,我找不到任何提出这个问题的问题。

如果您对此感到担忧;然后或者你可以从插件源中找到你需要的代码

于 2018-02-08T13:09:14.790 回答