如何将自定义 HTML 添加到 wp_nav_menu?
我熟悉 WordPress 并使用 WordPress 菜单系统。 但我正在寻找一种将自定义 HTML 添加到wp_nav_menu()
。
我正在尝试创建一个这样的菜单:
请注意产品下的下拉菜单如何包含图像和链接。 我想重新创建这个。 我看过一些插件,但宁愿编码。
我不介意硬编码图像和链接,但我想保持使用 WordPress 来管理菜单的灵活性。
解决方案
WordPress 通过菜单页面显示项目的方式是使用 walker 对象。 在这种情况下,此对象的特定类称为 Walker_Nav_Menu。 您可以在wp-includesnav-menu-template.php
找到它。
Walker_Nav_Menu
是一个非常简单的类。 您可以看到链接和菜单结构是如何在那里构建的。 函数start_el
和end_el
用于构建菜单项。 函数start_lvl
和end_lvl
用于嵌套菜单。 在这种方法中,我们将主要使用start_el
和end_el
。
在您的functions.php
创建一个类,使用与父类非常相似的方法来扩展Walker_Nav_Menu
:
class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
function start_el ( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
// Copy all the start_el code from source, and modify
}
function end_el( &$output, $item, $depth = 0, $args = array() ) {
// Copy all the end_el code from source, and modify
}
}
在这些函数中, $item
是您的菜单项,如果您愿意,您可以使用它根据当前菜单项查询其他内容。 请注意,我没有包含start_lvl
和end_lvl
,但这并不重要,因为您的类将自动继承父类方法,如果没有被覆盖。
然后,在您的主题文件中,您可以像这样调用 wp_nav_menu:
wp_nav_menu(array(
'theme_location' => 'main',
'container' => false,
'menu_id' => 'nav',
'depth' => 1,
// This one is the important part:
'walker' => new Custom_Walker_Nav_Menu
));
WordPress 将使用您自定义的类和函数,以便您可以修改输出的代码。
你可能还喜欢下面这些文章

WordPress文章编辑器页面右侧的分类展示使用的是wp_terms_checklist()函数。该函数用于显示一个包含分类目录或标签的复选框菜单,允许用户在文章编辑页面中选择相关的分类或标签。

//developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked-questions/#can-i-disable-the-rest-接口据此,Wordpress。

wp_next_scheduled(‘my_awesome_cron_hook’)。_get_cron_array()或get_option(‘cron’)。

$wp_admin_bar->add_action(‘admin_bar_menu’, ‘custom_toolbar_link’, 999);

imwprobot(蜂集)是一款wordpress采集插件。有什么功能1. 全自动无人值守,支持定时采集2. 可自动同步目标站的更新3. AI自动关键词、自动摘要生成4. 直接发布到wordpress,不需要额外的接口支持5. 正文图片和缩略

我查了很多,大部分人都说wp_head() 位于 wp-includes/general-template.phpwp_head() 位于 wp-includes/general-template.php。

现在写点文章不配图总觉得文章质量不太高。于是萌生了写一款文章自动配图的插件的想法。文章页自动加一张图比较简单,从候选集中选择一张图片拼接在正文中即可。又比如在图片中添加文章标题,摘要或者自定义的文字。

网站获取流量需要依靠长尾词,但我们不可能把所有的长尾词都堆在标题或者正文中。现在我开发了一款能自动匹配长尾词的插件wpkws,他的功能是找到和文章相似的长尾词,自动添加为标签。