自定义wordpress三级导航菜单代码

devtools/2025/3/6 15:12:12/

首先,在你的主题functions.php文件中,添加以下代码以注册一个新的菜单位置:

function mytheme_register_menus() {register_nav_menus(array('primary-menu' => __('Primary Menu', 'mytheme')));
}
add_action('init', 'mytheme_register_menus');

接下来,在你的主题header.php文件中,添加以下代码以显示3级菜单:

<nav id="primary-menu" class="main-navigation" role="navigation"><?phpwp_nav_menu(array('theme_location' => 'primary-menu','container' => false,'menu_class' => 'menu','fallback_cb' => false,'walker' => new MyTheme_Menu_Walker()));?>
</nav>

然后,在你的主题目录中创建一个名为menu-walker.php的文件,并添加以下代码:

class MyTheme_Menu_Walker extends Walker_Nav_Menu {function start_lvl(&$output, $depth = 0, $args = array()) {$output .= "\n<ul class=\"sub-menu level-" . ($depth + 1) . "\">\n";}function end_lvl(&$output, $depth = 0, $args = array()) {$output .= "</ul>\n";}function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {$classes = empty($item->classes) ? array() : (array) $item->classes;$classes[] = 'menu-item-' . $item->ID;$class_names = join(' ', apply_filters('nav_menu_css_class', array_filter($classes), $item, $args));$class_names = $class_names ? ' class="' . esc_attr($class_names) . '"' : '';$output .= '<li' . $class_names . '>';$attributes = !empty($item->attr_title) ? ' title="' . esc_attr($item->attr_title) . '"' : '';$attributes .= !empty($item->target) ? ' target="' . esc_attr($item->target) . '"' : '';$attributes .= !empty($item->xfn) ? ' rel="' . esc_attr($item->xfn) . '"' : '';$attributes .= !empty($item->url) ? ' href="' . esc_attr($item->url) . '"' : '';$output .= '<a' . $attributes . '>';$output .= $args->link_before . apply_filters('the_title', $item->title, $item->ID) . $args->link_after;$output .= '</a>';}function end_el(&$output, $item, $depth = 0, $args = array()) {$output .= "</li>\n";}
}

最后,在你的主题functions.php文件中,添加以下代码以包含menu-walker.php文件,ZhanYes小编提醒,也可以不要这个直接放在functions.php文件中:

require_once get_template_directory() . '/menu-walker.php';

现在,你应该可以在WordPress后台创建一个包含3级菜单的自定义菜单,并将其分配给主题位置。

原文

https://www.zhanyes.com/code/6368.html


http://www.ppmy.cn/devtools/165020.html

相关文章

广域互联网关键技术详解(GRE/LSTP/IPsec/NAT/SAC/SPR)

《广域互联网关键技术详解》属于博主的“广域网”专栏&#xff0c;若想成为HCIE&#xff0c;对于广域网相关的知识需要非常了解&#xff0c;更多关于广域网的内容博主会更新在“广域网”专栏里&#xff0c;请持续关注&#xff01; 一.前言 广域互联技术纷杂多样&#xff0c;不…

Java-servlet(二)Java-servlet-Web环境搭建(上)IDEA,maven和tomcat工具下载(附Gitee直接下载)

Java-servlet&#xff08;二&#xff09;Java-servlet-Web环境搭建&#xff08;上&#xff09;IDEA&#xff0c;maven和tomcat工具下载 前言一、IDEA 的下载二、Maven 的下载我的gitee直接下载链接 三、Tomcat 的下载我的gitee直接下载链接 前言 上一节我们深入探讨了 Java-se…

【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-附录C-JavaScript 库和框架

附录C、JavaScript 库和框架 JavaScript 库和框架 JavaScript 库帮助弥合浏览器之间的差异&#xff0c;能够简化浏览器复杂特性的使用。库主要分两种形式&#xff1a;通用和专用。通用 JavaScript 库支持常用的浏览器功能&#xff0c;可以作为网站或 Web 应用程序开发的基础。专…

element-ui tooltip 组件源码分享

tooltip 组件源码分享&#xff0c;主要从以下两个方面&#xff1a; 1、tooltip 组件页面结构。 2、tooltip 组件属性。 一、组件页面结构。 二、组件属性。 2.1 effect 默认提供的主题&#xff0c;类型为 string&#xff0c;可选值有 dark/light&#xff0c;默认 dark。 2.…

centos和ubuntu下安装redis

1&#xff0c;判断环境是否有gcc gcc --version 如果未安装则执行 yum install -y gcc tcl 2&#xff0c;安装包下载,编译安装 cd /usr/local mkdir redis wget https://download.redis.io/releases/redis-4.0.11.tar.gz tar -xvf redis-4.0.11.tar.gz cd redis-4.0.11 编译 m…

Ubuntu ollama 指定 gpu devices

现状 在二卡机上安装了 dify ollama deepseek stable-diffusion&#xff0c;如果同时运行会提示 OutOfMemoryError: CUDA out of memory. Tried to allocate 74.00 MiB. GPU&#xff0c;在服务器上运行 nvidia-smi -l 明显能看到 gpu 打满了&#xff0c;主要是 stable-diff…

大数据学习(53)-Hive与Impala

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…

LangChain-08 Query SQL DB 通过GPT自动查询SQL

我们需要下载一个 LangChain 官方提供的本地小数据库。 安装依赖 SQL: https://raw.githubusercontent.com/lerocha/chinook-database/master/ChinookDatabase/DataSources/Chinook_Sqlite.sql Shell: pip install --upgrade --quiet langchain-core langchain-community la…