いつも勉強させて頂いております。
【やりたいこと】
wordpressのカスタムメニューで子階層のliやaに特定のクラスをつけ、
ドロワーメニューを実装し、子階層を折りたためるメニューにしたい。
(youtubeのドロワーメニューの折りたたみメニューのようなもの)
【調べたこと】
カスタムメニューのli等にクラスをつけたいときはWalker クラスを使用する。
php
1<?php 2class Walker_Quickstart_Menu extends Walker { 3 4 // Walker に親と ID 値をどこから継承するかを伝える 5 var $db_fields = array( 6 'parent' => 'menu_item_parent', 7 'id' => 'db_id' 8 ); 9 10 /** 11 * 各要素の始まりで <li> と <a> タグ構造を出力する。 12 * 13 * 注意: メニューオブジェクトには URL とタイトルプロパティが含まれるため、 14 * これを使用する。 15 */ 16 function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { 17 $output .= sprintf( "\n<li class='test_child'><a href='%s'%s>%s</a></li>\n", 18 $item->url, 19 ( $item->object_id === get_the_ID() ) ? ' class="current"' : '', 20 $item->title 21 ); 22 } 23 24}
上記のようにすると階層がない場合のliに.test_childをつけることができました。
ただ、コードの意味はあまりわかっていません。
これを子階層のliやaにクラスをつける場合はどのようにすればよいのでしょうか?
wp-bootstrap-navwalkerなどを参考にしてみたのですが、理解しきれていません。
ご教授よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/28 23:02
2017/10/28 23:04