[英]How to echo the target attribute of custom menu in WordPress
以下代碼組成一個自定義菜單:
<ul class="nav navbar-nav">
<?php
$menu = wp_get_nav_menu_items_hierarchically( 'Menu' );
foreach($menu as $toplevel):
$hasChildren = !empty($toplevel['children']);
?>
<li<?php if($hasChildren) echo ' class="dropdown"'; ?>>
<a href="<?php echo $toplevel['url'] ?>"<?php if($hasChildren) echo ' class="dropdown-toggle" role="button" aria-haspopup="true" aria-expanded="false"'; ?>>
<?php echo $toplevel['title'] ?>
</a>
<?php if($hasChildren): ?>
<ul class="dropdown-menu">
<?php foreach($toplevel['children'] as $child): ?>
<li><a href="<?php echo $child['url']; ?>"><?php echo $child['title']; ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php
endforeach;
?>
</ul>
但是此代碼不會檢索target
屬性。 因此,如果選中此選項:
上面的代碼將忽略該設置,並且將在同一標簽中保持打開狀態。 我應該怎么做才能獲取菜單項的目標值? 我嘗試使用$child['target']
,但是此字段不存在...
這是wp_get_nav_menu_items_hierarchically
的代碼:
function wp_get_nav_menu_items_hierarchically( $menu ) {
$menu_items = wp_get_nav_menu_items( $menu );
$hierarchical_menu = array();
foreach ($menu_items as $item) {
if( !$item->menu_item_parent ) {
$hierarchical_menu[$item->ID]['title'] = $item->title;
$hierarchical_menu[$item->ID]['url'] = $item->url;
$hierarchical_menu[$item->ID]['attr_title'] = $item->attr_title;
} else {
$hierarchical_menu[$item->menu_item_parent]['children'][$item->object_id]['title'] = $item->title;
$hierarchical_menu[$item->menu_item_parent]['children'][$item->object_id]['url'] = $item->url;
}
}
return $hierarchical_menu;
}
嘗試使用get_post_meta($child['ID'],'_menu_item_target',true)
獲取菜單項的target屬性。
為了能夠訪問$ child ['target']屬性,您應該通過if ... else ...語句在內部獲取此屬性來更改wp_get_nav_menu_items_hierarchically
函數:
if( !$item->menu_item_parent ) {
...
$hierarchical_menu[$item->ID]['target'] = $item->tartget;
} else {
...
$hierarchical_menu[$item->menu_item_parent]['children'][$item->object_id]['target'] = $item->target;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.