1
我救了我的菜單名稱爲「main_nav」,我試圖得到它的所有項目:
$menu_name = 'main_nav';
$locations = get_nav_menu_locations();
var_dump($locations[$menu_name]); // NULL
if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
$menu = wp_get_nav_menu_object($locations[$menu_name]);
$menu_items = wp_get_nav_menu_items($menu->term_id);
$menu_list = '<nav>' ."\n";
$menu_list .= "\t\t\t\t". '<ul>' ."\n";
foreach ((array) $menu_items as $key => $menu_item) {
$title = $menu_item->title;
$url = $menu_item->url;
$menu_list .= "\t\t\t\t\t". '<li><a href="'. $url .'">'. $title .'</a></li>' ."\n";
}
}
,但我得到了null
$locations[$menu_name]
。任何想法我錯過了什麼?
你用'var_dump($ locations)'得到了什麼? ..「($ locations = get_nav_menu_locations())'是非常瘋狂的條件,因爲你把它分配給2行以上(並且你錯過了一個'=') – moped
我從別處拷貝了它,但我想它是一個錯誤的代碼。我應該通過它的菜單名稱是'主',而不是'main_nav',我將其設置在管理區域中。那很奇怪! – laukok
以及代碼實際上很好,如果你刪除第二行。在'if'條件下,它會嘗試將函數的輸出放到$ locations中,所以如果它不成功,它會返回false - 跳過條件,如果返回true/values,你會檢查'$ locations [$ menu_name]設置.. – moped