Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在特定位置插入动态菜单项?_Php_Wordpress_Wp Nav Menu Item - Fatal编程技术网

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

Php 如何在特定位置插入动态菜单项?,php,wordpress,wp-nav-menu-item,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></

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

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

快速而肮脏的解决方案:

安装;这允许您通过菜单页面有条件地显示菜单项和子菜单项

将您自己的my_函数添加到functions.php或您自己的站点函数插件。当显示子菜单时,插件应返回TRUE

在WP Dashboard菜单页面上,选择可选子菜单,并将此条件函数_existsmy_函数&&my_函数添加到其可见性字段。简单地说:如果找不到my_函数,请不要放弃,只有在my_函数返回TRUE时才显示此子菜单

我假设这个插件必须在visibility字段中计算条件。理论上,这是一个轻微的安全风险。然而,几个月前,当我检查插件的许多支持和评论时,我找不到任何值得关注的地方


如果这与您有关;然后,您也可以从插件源代码中找到所需的代码。

谢谢,我正在研究一种不使用插件的方法,并将其作为主题函数的核心,如果这个问题有效,我会更新它。如果你提出了一个代码解决方案,那么我和其他人都会感兴趣,所以把它添加为一个答案,并将其标记为正确答案。我有一种感觉,你将不得不使用沃克类-为我摆弄不同的菜单项和子链接取决于游客国家,因此我使用插件。我并没有检查,但上面插件中的代码可能会给你们一些如何实现的线索。实际上,它不需要步行器。与动作挂钩的想法相同,但是使用wp\u get\u nav\u menu\u项来循环它们,然后我只是在第n个菜单项之后插入链接,或者在我的例子中插入函数。它非常简单。