我需要获得顶级导航的标题。我已经知道顶级菜单项的ID,但我需要获得它的标题。怎么能这样做?
我目前有这样的菜单:
如果我在任何2级页面上都有1级菜单项 ID。我需要在当前的主题位置实例中获取标题。
<?php if(getTopSelectedMenu('primary')):
$topParent = intval(getTopSelectedMenu('primary'));
$topParentTitle = "";
?>
<div class="sidebar-menu-headline"><?=$topParentTitle?><i class="fa fa-arrow-down" aria-hidden="true"></i></div>
<?php
$args = array(
'menu' => '',
'menu_class' => 'sidebar-menu',
'container' => 'ul',
'theme_location' => 'primary',
'level' => 2,
'child_of' => $topParent,
'echo' => FALSE,
'fallback_cb' => '__return_false'
);
$submenu = wp_nav_menu( $args );
if ( ! empty ($submenu) )echo $submenu;
?>
答案 0 :(得分:2)
使用以下功能通过传递菜单ID来获取菜单标题。
Function: wp_get_nav_menu_object($menu) // $menu can be 'id','name' or 'slug'
Returns : Object (
term_id => 4
name => My Menu Name
slug => my-menu-name
term_group => 0
term_taxonomy_id => 4
taxonomy => nav_menu
description =>
parent => 0
count => 6
)
// in your case.
$menu = wp_get_nav_menu_object($topParent );
$menu_title = $menu->name;
您可以在此处找到更多信息。 https://codex.wordpress.org/Function_Reference/wp_get_nav_menu_object
要获取菜单标题,请使用以下代码
if(getTopSelectedMenu('primary')){
$topParentId = intval(getTopSelectedMenu('primary'));
$menuLocations = get_nav_menu_locations(); // Get our nav locations (set in our theme, usually functions.php)
// This returns an array of menu locations ([LOCATION_NAME] = MENU_ID);
$menu = wp_get_nav_menu_object($menuLocations['primary']) ; // Get the *primary* menu object
$primaryNav = wp_get_nav_menu_items($menu->term_id); // Get the array of wp objects, the nav items for our queried location.
foreach ( $primaryNav as $navItem ) {
if ($navItem->ID == $topParentId ) {
$topParentTitle = $navItem->title;
}
}
}
<div class="sidebar-menu-headline"><?=$topParentTitle?><i class="fa fa-arrow-down" aria-hidden="true"></i></div>
答案 1 :(得分:0)
对,您要简单!我明白了。
如果您知道该URL,请使用url_to_postid()
:
$actual_id = url_to_postid($url);
$the_title = get_the_title($actual_id);
或简单地:
$the_title = get_the_title(url_to_postid($url));
这真的不是一个不准确的时期!