私は番号を取得する必要があります。プライマリナビゲーションメニューの項目の数。各リストアイテムの幅をパーセンテージで決定するためにこれが必要です。だから私はまたどういうわけかリスト項目のcss width属性を変更/追加する必要があります。それもまだやるべき方法を考え出していません...最初の試みとして私は機能を試しました wp_get_nav_menu_object 。私は15のテンプレートから子テーマを開発しています。最初のナビゲーション(元のテーマフォルダのsidebar.phpファイルから直接コピーしたもの)をロードし、その後すぐにコードスニペットを使用してwp_get_nav_menu_objectを呼び出すカスタムホームページを作成しました。
<?php if (has_nav_menu('primary')) : ?>
<nav id="site-navigation" class="main-navigation" role="navigation">
<?php
// Primary navigation Menu
wp_nav_menu(array(
'menu_class' => 'nav-menu',
'theme_location' => 'primary',
));
// none of these seem to work...
//$menu = wp_get_nav_menu_object('menu-primary-menu');
$menu = wp_get_nav_menu_object('primary');
echo $menu->count;
?>
</nav> <!-- /.main-navigation -->
<?php endif; ?>
私は私がjQuery/JavaScriptソリューション(実際には今私がしていることです)で行くことができることを知っています、しかしそれは理想的ではありません。やりたいことのためには、Walkerクラスの助けを借りて自分自身のカスタムプライマリナビゲーションメニューを作成する必要があると疑い始めています。誰が最善のアプローチが何であるかについて私に助言することができますか?
wp_get_nav_menu_object()
関数に正しいパラメーターを指定していません。メニューIDまたはメニュースラッグが必要ですが、メニューテーマの場所を指定しています。明らかに、私はあなたのメニューのIDやスラグが何であるかをあなたに言うことはできません。
テーマの場所に割り当てられているメニューのメニューIDを取得する1つの方法は、get_nav_menu_locations()
を使用することです。
$menu = wp_get_nav_menu_object( get_nav_menu_locations()['primary'] );
echo $menu->count;