wordpress从wp_nav_menu中获取菜单项

53

从wp_nav_menu中获取菜单项,然后检查这些菜单项是否对应分类(Category),并输出这些分类的ID。

以下是完整的代码实现:

<?php
// 获取指定菜单位置的菜单项
$menu_items = wp_get_nav_menu_items('wodepress'); // 'wodepress' 是菜单位置的名称

if ($menu_items) {
    $category_ids = array(); // 用于存储分类ID的数组

    foreach ($menu_items as $item) {
        // 检查菜单项是否是分类
        if ($item->object == 'category') {
            $category_ids[] = $item->object_id; // 添加分类ID到数组
        }
    }

    // 输出分类ID
    if (!empty($category_ids)) {
        echo implode(', ', $category_ids); // 将分类ID以逗号分隔的形式输出
    } else {
        echo '没有找到分类ID';
    }
}
?>

代码说明:

wp_get_nav_menu_items(‘wodepress’):

通过wp_get_nav_menu_items函数获取指定菜单位置(wodepress)的所有菜单项。

这些菜单项是一个对象数组,每个对象包含菜单项的各种属性。

检查菜单项是否是分类:

每个菜单项对象的object属性表示菜单项的类型(如category、page、post等)。

如果object等于category,则说明该菜单项是一个分类。

object_id属性是分类的ID。

存储分类ID:

将找到的分类ID添加到$category_ids数组中。

输出分类ID:

使用implode函数将分类ID数组转换为以逗号分隔的字符串并输出。

示例输出:

假设菜单中有两个分类,ID分别为2和4,那么输出将是:

2,4

如何使用:

将上述代码替换掉你原来的wp_nav_menu调用代码,放在需要输出分类ID的位置即可。例如,你可以将其放在主题的模板文件(如header.php或sidebar.php)中。

这样,代码会自动从菜单中提取分类的ID并输出,而不需要手动指定分类ID。