IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Wordpress开发 - 遍历获取菜单列表(itemsList)并且获取菜单子项名(item_name) -> 正文阅读

[PHP知识库]Wordpress开发 - 遍历获取菜单列表(itemsList)并且获取菜单子项名(item_name)

写在前面

今天开发首页菜单的时候,需要在指定的页面和指定的菜单添加a标签的class名,
但是走了好多弯路,然后最终实现的时候,也不知道该怎么写这个文章?因为感觉只有我自己有这种需求。
比如我要在?一个页面名叫“咕咕咕”?而且菜单item名叫?咕噜球?我才给他active 否则不给。
想想还是写一个遍历获取菜单列表(itemsList)吧,英文文档看多了,中文写起来竟然不知道如何组织语言了。

教程开始

在?functions.php?页面添加以下代码。记得适当的修改,仅提供思路~

functions

//更改li a样式
function baolog_menu_link_class($atts, $item, $args)
{
    $menu_name = 'menu_index';
    //menu_index是你注册的导航名字
    if ($args->theme_location == $menu_name) {
        //获取导航id
        $menuLocations = get_nav_menu_locations();
        $menuID = $menuLocations[$menu_name];
        //获取当前导航名
        $id = $item->ID;//当前所遍历到的item(这里的item不能直接获取名字)
        $primaryNav = wp_get_nav_menu_items($menuID);
      
        $class = 'nav-link';//默认样式名
        //重新利用 wp_get_nav_menu_items()函数遍历当前菜单
        foreach ($primaryNav as $navItem) {
            //获取菜单item名
            $item_name = $navItem->title;
            //可以做一些其他的验证 比如我需要的就是下面
            if ($navItem->ID == $id) {//利用id反查出item的名字
                //可以判断is_page('页面名')||$item_name=="咕噜球"
              if (is_page('咕咕咕')) {
                    if ($item_name == "咕噜球") {
                        $class .= ' active';//追加样式
                    }
                }
            }
        }
        $atts['class'] = $class;
    }
    return $atts;
}
add_filter('nav_menu_link_attributes', 'baolog_menu_link_class', 1, 3);

写在后面

不知道讲的是否有点迷糊了,大概的思路就是这样子吧~不懂的函数可以谷歌官方查一下。

0

Wordpress开发 - 遍历获取菜单列表(itemsList)并且获取菜单子项名(item_name) - 咕噜球 - 记录生活记录学习 (guluqiu.cc)

Wordpress开发 - 获取作者头像的两种方法

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:01:53  更:2021-08-09 10:02:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 4:25:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码