質問するログイン新規登録

回答編集履歴

1

source見直し訂正

2021/03/14 21:31

投稿

FromMZ1500
FromMZ1500

スコア496

answer CHANGED
@@ -52,4 +52,49 @@
52
52
  ?>
53
53
  <div><?php echo $menu_list; ?></div>
54
54
 
55
+ ```
56
+
57
+ <以下、翌朝追記>
58
+
59
+ 見直してみたら無駄なことやってるので、なおしました。こちらで。
60
+ (簡単になりすぎたので、なさりたい結果がこれでいいのかは自信なし)
61
+
62
+ ```PHP
63
+ if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
64
+ // メニュー内に作られたナビゲーションメニューのアイテム
65
+ $menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
66
+ //ナビゲーションメニューデータを取得
67
+ $menu_items = wp_get_nav_menu_items($menu->term_id);
68
+
69
+ $ID_ThisPage = null;
70
+ $ID_Root = null;
71
+ foreach ( (array) $menu_items as $key => $menu_item ) {
72
+ if ($menu_item->menu_item_parent == 0 ){
73
+ //menu_item_parent が 0 なら ルートの親 (1件必ずある)
74
+ $ID_Root = $menu_item->ID;
75
+ }
76
+ if ($menu_item->object_id == get_the_ID()){
77
+ //PostIDが一致するのがThisページのmenu
78
+ $ID_ThisPage = $menu_item->ID;
79
+ }
80
+ }
81
+
82
+ if ($ID_Root != $ID_ThisPage) {
83
+ // ルート以外の場合
84
+ $menu_list = '<ul>';
85
+ foreach ( (array) $menu_items as $key => $menu_item ) {
86
+ // 第二階層のメニューのみを表示
87
+ if ($menu_item->menu_item_parent == $ID_Root) {
88
+ $title = $menu_item->title;
89
+ $url = $menu_item->url;
90
+ $menu_list .= '<li id="test" class='.$current.'><a href="'.$url.'">'.$title.'</a></li>';
91
+ }
92
+ }
93
+ $menu_list .= '</ul>';
94
+ }
95
+ } else {
96
+ $menu_list = '<ul><li>Menu "' . $menu_name . '" not defined.</li></ul>';
97
+ }
98
+ ?>
99
+ <div><?php echo $menu_list; ?></div>
55
100
  ```