在WordPress主题开发里,“菜单”在前端页面中常见的调用/输出形式可以归纳为5种,按出现频率从高到低列给你,并给出最简代码片段,方便直接复制粘贴。

标准菜单位置调用(99%场景)

后台“外观→菜单”里把菜单A指派到菜单位置primary,模板里写:

// header.php 或任意模板
if ( has_nav_menu( 'primary' ) ) {wp_nav_menu( ['theme_location' => 'primary', // 与 register_nav_menus() 对应'container'      => 'nav','container_class'=> 'site-nav','menu_class'     => 'nav-list',] );
}

这是最官方、最兼容、最SEO的方式。

直接指定某个菜单(不依赖菜单位置)

有时你想无视菜单位置,只想输出“名叫Guest Menu”的菜单:

wp_nav_menu( ['menu'           => 'Guest Menu', // 也可以用 ID 或 slug'container'      => '','menu_class'     => 'guest-nav',
] );

适合在登录/未登录时切换菜单(配合is_user_logged_in())。

用Walker输出自定义结构(Bootstrap/Tailwind/多级)

wp_nav_menu( ['theme_location' => 'primary','walker'         => new My_Walker_Nav_Menu(),
] );

Walker里可以完全控制子菜单的class/data属性。

用wp_get_nav_menu_items()自己循环(极简/轻量)

如果你只要一级链接,不想用 ul/li 的默认结构:

$items = wp_get_nav_menu_items( 'Quick Links' );
if ( $items ) {echo '<div class="quick-links">';foreach ( $items as $item ) {printf('<a href="%s" class="link">%s</a>',esc_url( $item->url ),esc_html( $item->title ));}echo '</div>';
}

适合页脚一排纯链接、面包屑、侧边栏快捷入口等。

用简码或小工具

简码:[menu name=”Footer Menu”]

需插件(如 Shortcode in Menus)或自己在functions.php注册:

add_shortcode( 'menu', function ( $atts ) {$atts = shortcode_atts( [ 'name' => '' ], $atts );ob_start();wp_nav_menu( [ 'menu' => $atts['name'] ] );return ob_get_clean();
} );

小工具:

后台“外观→小工具”里拖一个“导航菜单”区块到任何小工具区域(侧边栏、页脚、全站模板部件)。

一句话总结

常规输出 → wp_nav_menu( [‘theme_location’=>’xxx’] )

无视位置 → wp_nav_menu( [‘menu’=>’菜单名’] )

改结构 → 传自定义 Walker

极简循环 → wp_get_nav_menu_items() 自己 echo

非主题 → 简码 / 小工具

原文

http://www.dulizhan.js.cn/wordpress/7028.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917778.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917778.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917778.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux中pthread_t 的值与top -Hp中线程id值的区别

linux中pthread_t 值与top -Hp中线程id值的区别 #include <stdio.h> #include <pthread.h> #include <thread>void thread_func() {printf("child thread id0x%x\n",pthread_self());while(1){ printf("hello world\n");} }int ma…

Idea集成Jenkins Control插件,在IDEA中触发Jenkins中项目的构建

IDEA可以下一个这个插件 Jenkins Control&#xff0c;直接在idea中触发测试环境项目的部署测试环境API-TOKEN&#xff1a;XXXXXXXXXXXXXXXX&#xff08;在jenkins的首页 - 系统管理 - 管理用户中获取&#xff09;配置号后&#xff0c;测试连接&#xff0c;需要是成功的状态&…

【ARM】CMSIS6 介绍

1、 简介CMSIS是通用微控制器软件接口标准(Common Microcontroller Software Interface Standard ) 的简写。CMSIS 包括API、软件组件、工具及工作流程&#xff0c;主要用于简化软件重用、缩短开发人员学习曲线&#xff0c;加快项目构建和调试&#xff0c;从而使产品更快上市。…

【含文档+PPT+源码】基于SSM的旅游与自然保护平台开发与实现

项目介绍 本课程演示的是一款&#xff1f;&#xff1f;&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 带你从零开始部署运行本套系统 该项目附带的源码资料…

QT6 源,十章绘图(2)画刷 QBrush:刷子只涉及填充颜色,线型,填充图片,以及变换矩阵这几个属性,附源代码带注释。

&#xff08;1&#xff09;本类的继承关系如下 &#xff1a;&#xff08;2&#xff09;本类是支持流运算的 &#xff1a;&#xff08;3&#xff09;本类的构造函数与运算符 operator 函数 &#xff1a;关于本类的构造函数&#xff0c;进行以下测试 &#xff1a;只修改画刷的构…

安科瑞智慧能源管理系统在啤酒厂5MW分布式光伏防逆流控制实践

项目信息 光伏装机1MW&#xff0c;3个并网点&#xff0c;低压接 入配电系统。 要求自发自用、余电不上网。解决方案 通过防逆流保护装置&#xff0c;做到刚性控制&#xff0c; 实现并网柜快速切断&#xff1b;通过防逆流管理系统&#xff0c;做到柔性调节&#xff0c; 实现光伏…

VUE-第二季-02

3.Vue组件化 3.1 什么是组件 (1) 传统方式开发的应用 一个网页通常包括三部分&#xff1a;结构&#xff08;HTML&#xff09;、样式&#xff08;CSS&#xff09;、交互&#xff08;JavaScript&#xff09; 传统应用存在的问题&#xff1a; ① 关系纵横交织&#xff0c;复杂…

【OpenGL】LearnOpenGL学习笔记02 - 绘制三角形、矩形

上接: https://blog.csdn.net/weixin_44506615/article/details/149861824 完整代码&#xff1a;https://gitee.com/Duo1J/learn-open-gl 一、渲染管线 在开始之前&#xff0c;我们先简单了解一下图形渲染管线 在渲染3D物体时&#xff0c;我们常用到的一种几何结构为网格模型…

Mysql的事务是什么?

简单来说&#xff0c;MySQL 实现事务的核心就像是给你的数据库操作加了一套“保险和存档”机制。它确保了你的操作要么全部成功&#xff0c;要么全部失败&#xff0c;并且在面对多人同时操作、系统突然崩溃等情况时&#xff0c;数据依然可靠、准确。 为什么需要事务呢&#xff…

测试开发:Python+Django实现接口测试工具

【测试开发天花板】DjangoVuePyTest打造企业级自动化平台&#xff5c;能写进简历的硬核项目最近被几个公司实习生整自闭了&#xff0c;没有基础&#xff0c;想学自动化又不知道怎么去学&#xff0c;没有方向没有头绪&#xff0c;说白了其实就是学习过程中没有成就感&#xff0c…

TFS-2022《A Novel Data-Driven Approach to Autonomous Fuzzy Clustering》

核心思想 这篇论文的核心思想是提出一种全新的、数据驱动的自主模糊聚类&#xff08;Autonomous Fuzzy Clustering, AFC&#xff09;算法。其核心创新在于&#xff0c;它巧妙地结合了模糊聚类的灵活性和基于中位数&#xff08;medoids&#xff09;聚类的可解释性&#xff0c;并…

ELK是什么

ELK 是一个广受欢迎的开源技术栈&#xff0c;用于实时采集、处理、存储、搜索、分析和可视化海量的日志数据&#xff08;log&#xff09;和机器生成的数据&#xff08;machine data&#xff09;&#xff0c;尤其是在 IT 系统监控、应用故障排查、安全分析和业务智能等领域应用广…

[硬件电路-123]:模拟电路 - 信号处理电路 - 常见的高速运放芯片、典型电路、电路实施注意事项

一、高速运放常见芯片型号及特性高速运放&#xff08;高速运算放大器&#xff09;通常指带宽&#xff08;GBW&#xff09;超过10MHz、压摆率&#xff08;SR&#xff09;高于10V/μs的器件&#xff0c;适用于视频处理、通信系统、高速数据采集等场景。以下是典型芯片及其特性&am…

关于解决WinRiver项目动态XmlElement的序列化与反序列化的问题

关于解决WinRiver项目动态XmlElement的序列化与反序列化的问题 一、WinRiver项目流量汇总XML内容 1.1、索引可变,索引下 XmlElement 元素内容固定 1.2、如何将对象 BottomTrack 的动态内容序列化为 XML ? 1.3、如何将 XML 动态内容反序列化为对象 BottomTrack ? 二、XML 动态…

【力扣 Hot100】 刷题日记

D3 128.最长连续序列 错解 class Solution {public int longestConsecutive(int[] nums) {Arrays.sort(nums);int maxCnt 0;int cnt 0;for (int i 0; i < nums.length - 1; i) {if(nums[i] ! nums[i 1] - 1){//如果不连续&#xff0c;取cnt与maxCnt较大值&#xff0c…

飞算JavaAI编程插件:以AI之力赋能Java开发,让编码效率再升级

你是否希望自己敲代码的时候总有一位大佬在你背后帮你保驾护航。想象一下&#xff0c;当你对着Java编辑器敲代码时&#xff0c;身后站了位“隐形大神”——你刚敲出for&#xff0c;它就预判到你要遍历集合&#xff0c;自动补全带泛型的循环逻辑&#xff1b;你手滑把equals写成&…

机器学习通关秘籍|Day 03:决策树、随机森林与线性回归

目录 一、决策树 1、概念 2、基于信息增益的决策树的建立 &#xff08;1&#xff09;信息熵 &#xff08;2&#xff09;信息增益 &#xff08;3&#xff09;信息增益决策树建立步骤 3、基于基尼指数的决策树的建立 4、API 二、随机森林 1、算法原理 2、API 三、线性…

C++进阶—C++的类型转换

第一章&#xff1a;C语言中的类型转换在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与接收返回值类型不一致时&#xff0c;就需要发生类型转化&#xff0c;C语言中总共有两种形式的类型转换&#xff1a…

基于Flask的微博话题多标签情感分析系统设计

基于Flask的微博话题情感分析系统设计与实现 一、项目概述 本项目是一个轻量化的微博话题情感分析系统&#xff0c;通过Flask框架整合情感分析模型&#xff0c;实现对微博话题及评论的情感标签识别与结果展示。系统面向普通用户和研究者&#xff0c;提供简单易用的操作界面&…

TDengine 中 TDgpt 的模型评估工具

模型评估工具 TDgpt 在企业版中提供预测分析模型和异常检测模型有效性评估工具 analytics_compare&#xff0c;该工具能够使用 TDengine 中的时序数据作为 回测依据&#xff0c;评估不同预测模型或训练模型的有效性。该工具在开源版本中不可用使用评估工具&#xff0c;需要在其…