我有以下代码:
$menu = get_term( $locations[$theme_location], \'nav_menu\' );
$menu_items = wp_get_nav_menu_items($menu->term_id);
foreach( $menu_items as $menu_item ) {
$link = $menu_item->url;
$title = $menu_item->title;
$slug = $menu_item->post_name;
}
的值
$slug
生成页面ID,而不是我要查找的url段塞,除非
$menu_item
是自定义链接,而不是页面。更重要的是,实际的url有我要找的slug,但是
page_name
包含与页面id相同的值。
示例:
echo $link;
>> \'http://localhost:8888/trips/\'
echo $title;
>> \'Trips\'
echo $slug;
>> 6195 // But I\'m looking for \'trips\'
我可以把鼻涕虫从
$link
, 但我认为必须有一种更优雅的方式来实现我所追求的目标。
问题如下this one 还有很多人建议抓取post_name
. 我错过了什么?
最合适的回答,由SO网友:Sumesh S 整理而成
尝试以下操作:
$menu = get_term( $locations[$theme_location], \'nav_menu\' );
$menu_items = wp_get_nav_menu_items($menu->term_id);
foreach( $menu_items as $menu_item ) {
$link = $menu_item->url;
$title = $menu_item->title;
$slug = basename($menu_item->url);
}
将整个permalink传递给
basename
函数,该函数将自动处理URL并只提供slug。