如何获取当前页面菜单项祖先名称wordpress

Efb*_*fbi 0 php wordpress

我想知道如何检索当前页面的名称作为变量。例如,我的菜单如下:

Item 1
Item 2 => sub-item 1
Run Code Online (Sandbox Code Playgroud)

第 1 项和第 2 项是自定义链接。sub-item1 是我的页面。

当我在此页面上时,我想检索“Item 2”名称(以构建我的自定义面包屑)

谢谢

Out*_*ess 6

面包屑:

这是一个与菜单层次结构一起使用的面包屑功能。将其添加到主题的“functions.php”中。

function my_menu_breadcrumb($theme_location, $separator = ' > ') {
    $locations = get_nav_menu_locations();
    if ( isset( $locations[ $theme_location ] ) ) {
        $menu = wp_get_nav_menu_object( $locations[ $theme_location ] );
        $menu_items = wp_get_nav_menu_items($menu->term_id);
        _wp_menu_item_classes_by_context( $menu_items );
        $breadcrumbs = array();

        foreach ( $menu_items as $menu_item ) {         
            if ($menu_item->current) {
                $breadcrumbs[] = "<span title=\"{$menu_item->title}\">{$menu_item->title}</span>";
            }
            else if ($menu_item->current_item_ancestor) {
                $breadcrumbs[] = "<a href=\"{$menu_item->url}\" title=\"{$menu_item->title}\">{$menu_item->title}</a>";
            }
        }

        echo implode($separator, $breadcrumbs);
     }
}
Run Code Online (Sandbox Code Playgroud)

然后您可以调用 as<?php my_menu_breadcrumb('header-menu'); ?>其中“header-menu”是菜单位置名称。在循环中,$menu_item->title将返回页面标题及其$menu_item->urlURL。

家长菜单标题:

这是获取当前页面的父菜单项标题的函数 - 将其添加到主题的“functions.php”中。

function my_menu_parent($theme_location) {
    $locations = get_nav_menu_locations();
    if ( isset( $locations[ $theme_location ] ) ) {
        $menu = wp_get_nav_menu_object( $locations[ $theme_location ] );
        $menu_items = wp_get_nav_menu_items($menu->term_id);
        _wp_menu_item_classes_by_context( $menu_items );
        $breadcrumbs = array();

        foreach ( $menu_items as $menu_item ) {         
            if ($menu_item->current_item_ancestor) {
                $breadcrumbs[] = $menu_item->title;
            }
        }

        return $breadcrumbs;
     }
}
Run Code Online (Sandbox Code Playgroud)

然后您可以按如下方式调用,其中“header-menu”是菜单位置名称。

$parentitems = my_menu_parent( 'header-menu' );
foreach ( $parentitems as $parentitem ) {
    echo $parentitem."<br>";
}
Run Code Online (Sandbox Code Playgroud)