コードのカスタマイズが必要な html 構造がありwp_nav_menu
ます。
これは、生成する必要がある html です。
<ul class="main-nav">
<li class="item">
<a href="http://example.com/?p=123" class="title">Title</a>
<a href="http://example.com/?p=123" class="desc">Description</a>
<ul class="sub-menu">
<li class="item">
<a href="http://example.com/?p=123" class="title">Title</a>
<a href="http://example.com/?p=123" class="desc">Description</a>
</li>
</ul>
</li>
<li class="item">
<a href="http://example.com/?p=123" class="title">Title</a>
<a href="http://example.com/?p=123" class="desc">Description</a>
</li>
</ul>
現在wp_get_nav_menu_items
、メニューからすべてのアイテムを配列として取得するために使用しています。
現在、次のコードを使用して、サブメニューなしで上記の html を生成できます。
<?php
$menu_name = 'main-nav';
$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' ) );
foreach ( $menuitems as $item ):
$id = get_post_meta( $item->ID, '_menu_item_object_id', true );
$page = get_page( $id );
$link = get_page_link( $id ); ?>
<li class="item">
<a href="<?php echo $link; ?>" class="title">
<?php echo $page->post_title; ?>
</a>
<a href="<?php echo $link; ?>" class="desc">
<?php echo $page->post_excerpt; ?>
</a>
</li>
<?php endforeach; ?>
関数を使用してメニューを生成したはずですが、 を使用しwp_nav_menu
て示されている説明がまだ必要$page->post_excerpt
です。
$item->menu_item_parent
親メニュー項目の ID を与える、呼び出された各項目のプロパティがあることがわかりました。
foreach
ループでサブメニューを生成するにはどうすればよいですか? wp_nav_menu
または、 Google が言及するのを忘れたものを使用する本当に簡単な方法はありますか?