Я использую этот код для добавления пункта меню в определенную позицию c в моем меню Wordpress:
//Add menu items
add_filter( 'wp_nav_menu_items', 'prefix_add_menu_item', 10, 2 );
//Add Menu Item to a specific place in the menu
function prefix_add_menu_item ( $items, $args ) {
$items_array = array();
while ( false !== ( $item_pos = strpos ( $items, '<li', 71 ) ) ) // Add
the position where the menu item is placed
{
$items_array[] = substr($items, 0, $item_pos);
$items = substr($items, $item_pos);
}
$items_array[] = $items;
array_splice($items_array, 70, 0, '<li class="menu-item menu-item-type-post_type menu-item-object-page"><a title="Toutes les promotions" href="#">New menu item</a></li>');
// insert custom item after 70th item one
$items = implode('', $items_array);
return $items;
}
Работает нормально, но, как видите, у меня много элементов в моем меню (новый элемент находится в позиции 70), и если я удаляю или добавляю элемент перед элементом «Новое меню», он меняет свою позицию ...
Я ищу решение используя только PHP для изменения этого кода, чтобы элемент «Новый» добавлялся до или после пункта меню с указанным c ID.
Есть идеи? Спасибо за вашу помощь!