2016-07-17 5 views
0

ANSWER - どのような最終的に働いたことは、これをやっていた:メニュー項目を出力するとブール値が出力されるのはなぜですか? (ワードプレス)

$menuitems = wp_get_nav_menu_items(2); 
foreach((array)$menuitems as $item) { 

ちょうどそのコードだけで私はNAV-メニュー項目を取得することができました。出力属性に私はちょうどでした。このような呼び出し:

echo $item->url; 

QUESTION -

私は理解していない理由を私のコード:

<?php 
    $menu_name = 'main'; 
    $locations = get_nav_menu_locations(); 
    $menu = wp_get_nav_menu_object($locations[ $menu_name ]); 
    $menuitems = wp_get_nav_menu_items($menu->term_id, array('order' => 'DESC')); 
?> 

<nav> 
    <ul class="main-nav"> 
     <?php 
      foreach((array)$menuitems as $item){ 
       var_dump($item);   
      } 
     ?> 

    </ul> 
</nav> 

出力これとこれだけ:

bool(false)

"main"という名前でメニューにある各項目を出力するには、上記のコードを理解する必要があります。

どうすればこの問題を解決できますか?なぜ私はこの出力を得ていますか?

+1

これらの変数の値が期待どおりであるかどうかを確認してください。 '$ menu-> term_id'、' $ locations [$ menu_name] 'のようなものです。 –

+0

@DaveChen両方ともnullです。実際には、定義した後に 'var_dump'した場所に' array(0){} 'を返します。私は単に私のメインメニューにアクセスし、それぞれのメニューを正しく反復する方法を理解していません。 – NoReceipt4Panda

答えて

0

falseを返した場合は、「メイン」メニュー位置に割り当てられたメニューがないか、または「メイン」がメニュー位置ではないため、wp_get_nav_menu_itemsが失敗した可能性があります。コーデックスをチェックしてください:

https://developer.wordpress.org/reference/functions/wp_get_nav_menu_items/

$場所の結果、および$メニューは、私は$場所が[$ menu_name]すでにあなたのメニューのIDを取得すべきだと思うので、そこにあるのvar_dump私がお勧めしたいです実際には$ menu = wp_get_nav_menu_object($ locations [$ menu_name])コールは不要です。

+0

最終的には、メニューIDを取得し、メニューIDでその関数を呼び出すことができました。私は答えで私の質問を編集します。あなたの頭のおかげで! – NoReceipt4Panda

関連する問題