gpt4 book ai didi

php - 创建新菜单项 - Wordpress

转载 作者:技术小花猫 更新时间:2023-10-29 12:43:29 24 4
gpt4 key购买 nike

我正在寻找一种方法来创建可以添加到菜单的新项目。

以下是我的问题的详细信息:我使用 WPML。 WPML 有一个很好的功能,您可以自动将切换器添加到菜单中。它将它添加到菜单的末尾,无法对其进行控制。

问题是,我希望我的语言切换器是 6 个元素中的第 4 个元素。在末尾自动添加元素的功能不符合我的需要。

所以我想创建一个可以在外观->菜单中使用的新元素,以将我的语言切换器准确地放在我想要的位置。

有什么办法吗?

TLDR:我希望能够在菜单元素(Apparence->Menu)中推送自定义 HTML/PHP 代码。有什么功能可以这样做吗?

最佳答案

来自 wp-includes/nav-menu-template.php , 在 Walker_Nav_Menu::start_el :

/**
* Filter a menu item's starting output.
*
* The menu item's starting output only includes `$args->before`, the opening `<a>`,
* the menu item's title, the closing `</a>`, and `$args->after`. Currently, there is
* no filter for modifying the opening and closing `<li>` for a menu item.
*
* @since 3.0.0
*
* @param string $item_output The menu item's starting HTML output.
* @param object $item Menu item data object.
* @param int $depth Depth of menu item. Used for padding.
* @param array $args An array of {@see wp_nav_menu()} arguments.
*/
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );

这意味着您可以使用该过滤器将 HTML 内容附加到单个导航菜单项(就在最后一个 li 标记之前)。 $item_output包含到目前为止为项目生成的 HTML。示例:

<?php

add_filter('walker_nav_menu_start_el', function ($item_output) {
return $item_output . '<span>hello world</span>';
});

这将追加 <span>hello world</span>到每个导航菜单项 HTML。收盘li标签将附加在此过滤器之后。您可以使用第四个参数 ( $args) 来验证当前呈现的导航菜单。

关于php - 创建新菜单项 - Wordpress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33572721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com