0
メニュージェネレータを書き換えてメニューの順序を変更し、その場所を移動する方法を見つけ出しました。これは比較的粗雑です。メニュー内でアクティブなメニュー項目を見つける
しかし、私の問題は、現在のアクティブなオプションの名前またはIDを見つける方法です。
以下の例では、ハードコードされた値($ current_id)を使用して、真ん中に何を配置するのかを識別しますが、現在のページのIDを取得します。
これで終わりではリスト
$menuLocations = get_nav_menu_locations(); // Get our nav locations (set in our theme, usually functions.php)
// This returns an array of menu locations ([LOCATION_NAME] = MENU_ID);
// foreach ($menuLocations as $menuLocation) {
// echo '<p style="color: red">',$menuLocation,'</p>';
// }
// print_r(array_keys($menuLocations));
$menuID = $menuLocations['primary_navigation']; // Get the *primary* menu ID
$primaryNav = wp_get_nav_menu_items($menuID); // Get the array of wp objects, the nav items for our queried location.
//print_r(array_keys($primaryNav));
$current_id = 5;
$menu_length = count($primaryNav);
if ('5' == $menu_length){
echo $MenuStart;
for ($i = 0 ; $i <=4 ; $i++) {
$cu_target = $i + $current_id + 3;
if ($cu_target > 5) {
$cu_target -= 5;
}
if ($cu_target > 5) {
$cu_target -= 5;
}
$navItem = $primaryNav[$cu_target - 1];
echo '<li class="MainNavLink',$i,' nav-item">';
echo '<a class="nav-link py-1 pr-3" href="'.$navItem->url.'" title="'.$navItem->title.'">'.$navItem->title.'</a>';
echo '</li>';
}