質問編集履歴
4
誤字の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
詳細メニュー設定>CSS クラスでliのクラス付与もできました。
|
10
10
|
|
11
11
|
divで囲い、そのdivとulに各クラスをつけるところまではできておらず、初期のdivなしulにclass="sub-menu"が付いた状態です。
|
12
12
|
|
3
一部問題の解決
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,7 +6,9 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
+
start_el()の条件分岐を修正することで、liのクラス付与もできました。
|
10
|
+
|
9
|
-
|
11
|
+
divで囲い、そのdivとulに各クラスをつけるところまではできておらず、初期のdivなしulにclass="sub-menu"が付いた状態です。
|
10
12
|
|
11
13
|
|
12
14
|
|
@@ -160,9 +162,9 @@
|
|
160
162
|
|
161
163
|
( $depth == 0 ? 'nav_global-parent' : 'nav_global-child' ),//1階層目のliにつけたいクラス
|
162
164
|
|
163
|
-
( $depth >=
|
165
|
+
( $depth >=1 ? 'nav_global-child' : 'nav_global-grantChild' ),//2階層目のliにつけたいクラス
|
164
|
-
|
166
|
+
|
165
|
-
( $depth >=
|
167
|
+
( $depth >= 2 ? 'nav_global-grantChild' : '' ),//3階層目のliにつけたいクラス
|
166
168
|
|
167
169
|
);
|
168
170
|
|
2
タイトルの修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
wp_nav_menu()で
|
1
|
+
wp_nav_menu()で孫メニューまでを階層で分岐してdivで囲むには
|
test
CHANGED
@@ -1,8 +1,20 @@
|
|
1
|
+
###追記 : 警告エラーの解消
|
2
|
+
|
3
|
+
こちらの記事を参考に```start_lvl( &$output, $depth = 0, $args = array())```と```start_el( &$output, $item, $depth = 0, $args = array(), $id=0 )```に修正してみたところ、警告エラーは解消されました。
|
4
|
+
|
5
|
+
[WordPress で PHP7.0にアップデートしたら start_lvl() と start_el() でエラーが出た場合の対処法](https://kiraba.jp/post-4tyab22x/)
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
2階層(親から子まで)まではmenu_classを持っているかで分岐させて、といった記事を参考にしながら試してはいますが、2 ~ 3階層以降(〜孫まで)を階層で条件分岐させてdivと各クラスをつけるところまではできていません。
|
10
|
+
|
11
|
+
|
12
|
+
|
1
13
|
### 前提・実現したいこと
|
2
14
|
|
3
15
|
|
4
16
|
|
5
|
-
WordPress初
|
17
|
+
WordPress、PHP初学者です。
|
6
18
|
|
7
19
|
下記のようなことを考えています。
|
8
20
|
|
@@ -250,20 +262,6 @@
|
|
250
262
|
|
251
263
|
```
|
252
264
|
|
253
|
-
|
254
|
-
|
255
|
-
###追記 : 警告エラーの解消
|
256
|
-
|
257
|
-
こちらの記事を参考に```start_lvl( &$output, $depth = 0, $args = array())```と```start_el( &$output, $item, $depth = 0, $args = array(), $id=0 )```に修正してみたところ、警告エラーは解消されました。
|
258
|
-
|
259
|
-
[WordPress で PHP7.0にアップデートしたら start_lvl() と start_el() でエラーが出た場合の対処法](https://kiraba.jp/post-4tyab22x/)
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
2階層(親から子まで)まではmenu_classを持っているかで分岐させて、といった記事を参考にしながら試してはいますが、2 ~ 3階層以降(〜孫まで)を階層で条件分岐させてdivと各クラスをつけるところまではできていません。
|
264
|
-
|
265
|
-
|
266
|
-
|
267
265
|
### バージョン
|
268
266
|
|
269
267
|
バージョン 5.8
|
1
警告エラーの解消
test
CHANGED
File without changes
|
test
CHANGED
@@ -98,19 +98,21 @@
|
|
98
98
|
|
99
99
|
class megamenu extends Walker_Nav_Menu {
|
100
100
|
|
101
|
+
//start_lvlを修正
|
102
|
+
|
101
|
-
function start_lvl( &$output, $depth ) {
|
103
|
+
function start_lvl( &$output, $depth = 0, $args = array()) {
|
102
104
|
|
103
105
|
|
104
106
|
|
105
107
|
$indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' );
|
106
108
|
|
107
|
-
$display_depth = ( $depth + 1);
|
109
|
+
$display_depth = ( $depth + 1);//視覚的に分かりやすいように1〜
|
108
110
|
|
109
111
|
$classes = array(
|
110
112
|
|
111
|
-
'nav_global-children',
|
113
|
+
'nav_global-children',//2階層目のulに付けたいクラス
|
112
|
-
|
114
|
+
|
113
|
-
( $display_depth >=3 ? 'nav_global-grantChildren' : '' ),
|
115
|
+
( $display_depth >=3 ? 'nav_global-grantChildren' : '' ),//3階層目のulに付けたいクラス
|
114
116
|
|
115
117
|
);
|
116
118
|
|
@@ -118,9 +120,9 @@
|
|
118
120
|
|
119
121
|
$classes_container = array(
|
120
122
|
|
121
|
-
'nav_global-children-container',
|
123
|
+
'nav_global-children-container', //2階層目を囲うdivに付けたいクラス
|
122
|
-
|
124
|
+
|
123
|
-
( $display_depth >=3 ? 'nav_global-grantChildren-container' : '' ),
|
125
|
+
( $display_depth >=3 ? 'nav_global-grantChildren-container' : '' ),//3階層目を囲うdivに付けたいクラス
|
124
126
|
|
125
127
|
);
|
126
128
|
|
@@ -132,7 +134,7 @@
|
|
132
134
|
|
133
135
|
}
|
134
136
|
|
135
|
-
|
137
|
+
//start_elを修正
|
136
138
|
|
137
139
|
function start_el( &$output, $item, $depth, $args=array(), $id=0 ) {
|
138
140
|
|
@@ -144,11 +146,11 @@
|
|
144
146
|
|
145
147
|
$depth_classes = array(
|
146
148
|
|
147
|
-
( $depth == 0 ? 'nav_global-parent' : 'nav_global-child' ),
|
149
|
+
( $depth == 0 ? 'nav_global-parent' : 'nav_global-child' ),//1階層目のliにつけたいクラス
|
148
|
-
|
150
|
+
|
149
|
-
( $depth >=2 ? 'nav_global-child' : 'nav_global-grantChild' ),
|
151
|
+
( $depth >=2 ? 'nav_global-child' : 'nav_global-grantChild' ),//2階層目のliにつけたいクラス
|
150
|
-
|
152
|
+
|
151
|
-
( $depth >= 3 ? 'nav_global-grantChild' : '' ),
|
153
|
+
( $depth >= 3 ? 'nav_global-grantChild' : '' ),//3階層目のliにつけたいクラス
|
152
154
|
|
153
155
|
);
|
154
156
|
|
@@ -156,8 +158,6 @@
|
|
156
158
|
|
157
159
|
|
158
160
|
|
159
|
-
// passed classes
|
160
|
-
|
161
161
|
$classes = empty( $item->classes ) ? array() : (array) $item->classes;
|
162
162
|
|
163
163
|
$class_names = esc_attr( implode( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ) );
|
@@ -166,7 +166,7 @@
|
|
166
166
|
|
167
167
|
$output .= $indent . '<li id="nav-menu-item-'. $item->ID . '" class="' . $depth_class_names . ' ' . $class_names . '">';
|
168
168
|
|
169
|
-
|
169
|
+
//属性の設定
|
170
170
|
|
171
171
|
$attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : '';
|
172
172
|
|
@@ -212,38 +212,36 @@
|
|
212
212
|
|
213
213
|
wp_nav_menu ( $megamenu = array (
|
214
214
|
|
215
|
+
'menu' => '',
|
216
|
+
|
217
|
+
'menu_class' => 'nav_global-parents',
|
218
|
+
|
219
|
+
'menu_id' => '',
|
220
|
+
|
221
|
+
'container' => 'nav',
|
222
|
+
|
223
|
+
'container_class' => 'nav_global-container',
|
224
|
+
|
225
|
+
'container_id' => '',
|
226
|
+
|
227
|
+
'fallback_cb' => 'wp_page_menu',
|
228
|
+
|
229
|
+
'before' => '',
|
230
|
+
|
231
|
+
'after' => '',
|
232
|
+
|
233
|
+
'link_before' => '',
|
234
|
+
|
235
|
+
'link_after' => '',
|
236
|
+
|
237
|
+
'echo' => true,
|
238
|
+
|
239
|
+
'depth' => 0,
|
240
|
+
|
241
|
+
'walker' => new Walker_Nav_Menu(),
|
242
|
+
|
215
243
|
'theme_location' => 'global',
|
216
244
|
|
217
|
-
'menu' => 'global',
|
218
|
-
|
219
|
-
'menu_class' => 'nav_global-parents',
|
220
|
-
|
221
|
-
'menu_id' => '',
|
222
|
-
|
223
|
-
'container' => 'nav',
|
224
|
-
|
225
|
-
'container_class' => 'nav_global-container',
|
226
|
-
|
227
|
-
'container_id' => '',
|
228
|
-
|
229
|
-
'fallback_cb' => 'wp_page_menu',
|
230
|
-
|
231
|
-
'before' => '',
|
232
|
-
|
233
|
-
'after' => '',
|
234
|
-
|
235
|
-
'link_before' => '',
|
236
|
-
|
237
|
-
'link_after' => '',
|
238
|
-
|
239
|
-
'echo' => true,
|
240
|
-
|
241
|
-
'depth' => 0,
|
242
|
-
|
243
|
-
'walker' => new Walker_Nav_Menu(),
|
244
|
-
|
245
|
-
'theme_location' => '',
|
246
|
-
|
247
245
|
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
|
248
246
|
|
249
247
|
));
|
@@ -254,6 +252,16 @@
|
|
254
252
|
|
255
253
|
|
256
254
|
|
255
|
+
###追記 : 警告エラーの解消
|
256
|
+
|
257
|
+
こちらの記事を参考に```start_lvl( &$output, $depth = 0, $args = array())```と```start_el( &$output, $item, $depth = 0, $args = array(), $id=0 )```に修正してみたところ、警告エラーは解消されました。
|
258
|
+
|
259
|
+
[WordPress で PHP7.0にアップデートしたら start_lvl() と start_el() でエラーが出た場合の対処法](https://kiraba.jp/post-4tyab22x/)
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
2階層(親から子まで)まではmenu_classを持っているかで分岐させて、といった記事を参考にしながら試してはいますが、2 ~ 3階層以降(〜孫まで)を階層で条件分岐させてdivと各クラスをつけるところまではできていません。
|
264
|
+
|
257
265
|
|
258
266
|
|
259
267
|
### バージョン
|