たった1つのエコー行からサブページアイテムのリスト全体を出力するカスタマイズされた wp_nav_menu ナビゲーションがあります...
<?php
$menuParameters = array(
'theme_location' =>'primary',
'menu_id' => 'main-menu',
'before' => '<div class="service-boxes-item"><h2>',
'after' => '</h2></div>',
'container' => false,
'echo' => false,
'depth' => 0,
'walker'=>new Selective_Walker()
);
echo strip_tags(wp_nav_menu( $menuParameters ), '<a><div><h2>' );
?>
ul
とli
タグを取り除くためにこれを行いました。現在、これを出力します:
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
これは完璧で、まさに私が欲しいものです。
カスタム ウォーカーを使用していることがわかります。これは、現在のページのサブ メニュー項目のみを表示できるようにするためのものです。
問題は、各サービス ボックス アイテムに他の要素を追加する必要があるときに発生します。
H1 や Div タグなどのタグとクラスを追加することができましたが、各ページ タイトルの下に各サービス ボックス アイテムの横にボタンを追加したいと考えています。
これに最適なオプションは、ループ内に追加することだと思います。これらのアイテムをエコー文字列に追加する代わりに、適切に追加して、各アイテムの柔軟性を高めることができます。
以前にページと投稿のループでこれを行ったことがありますが、wp_nav_menu でそれを行う方法がわかりません。
私が考えることができる唯一の方法は、このようなものです...
<?php
$menuParameters = array(
'theme_location' =>'primary',
'menu_id' => 'main-menu',
'container' => false,
'echo' => false,
'depth' => 0,
'walker'=>new Selective_Walker()
);
$pages = wp_nav_menu($menuParameters); ?>
<?php foreach( $pages as $menuParameters ) { ?>
<div class="service-boxes-item">
<h2>
<a href="#">page title</a>
</h2>
</div>
<button class="button button-service" onclick="window.location.href = '<?php echo get_permalink($page->ID); ?>';">More Info</button>
<?php } ?>
しかし、ご覧のとおり、コードが非常に間違っていて、あらゆる種類の問題があるため、これは明らかに機能しません。ページ/投稿ループとナビゲーション出力を混在させています。
ナビゲーション メニューを使用したパーマリンクなどの他のものにアプローチする方法がわからないので、私は本当に混乱していますget_permalink();
。
基本的に、各アイテムに他の要素を追加できるようにする必要があるだけです...エコー文字列内にボタンを(パーマリンクなどで)追加できない限り?どんな助けやアドバイスも大歓迎です!!
疑問に思っている場合は、現在次のようになっています。
そして、私は各アイテムを次のように見せようとしています: