WordPressのカスタムメニューはWP_Queryで取得できます。
作成日:
2019年9月1日
WordPressのメニュー構造についてあれこれ見ていたら、メニューって
カスタム投稿;nav_menu_item
カスタム分類:nav_menu
で構成されているのが分かりました。
wp_get_nav_menu_items() | Function | WordPress Developer Resources
https://developer.wordpress.org/reference/functions/wp_get_nav_menu_items/
Note: Most arguments passed to the $args parameter – save for ‘output_key’ – are specifically for retrieving nav_menu_item posts from get_posts() and may only indirectly affect the ultimate ordering and content of the resulting nav menu items that get returned from this function.
なので、指定したメニューのアイテムリストを取得する際は、通常の投稿取得と同様にWP_Queryでも可能であることが分かりました。
[php]$args = array('order' => 'ASC',
'orderby' => 'menu_order',
'post_type' => 'nav_menu_item',
'post_status' => 'publish',
'nopaging' => true,
'update_post_term_cache' => false,
'tax_query' => array(
array(
'taxonomy' => 'nav_menu',
'field' => 'name',
'terms' => '{メニュー名}',
),
),
);
$the_query = new WP_Query($args);[/php]
もちろんこのままだと、階層の無いフラットな状態での表示になるので、また工夫が必要ですが。
取り敢えずメニューの表示をカスタマイズするのはWP_Queryを使っても良さそうだな、と判別しました。
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
コメントをどうぞ