Динамическое добавление пункта меню в меню Wordpress до или после пункта меню с указанным c ID - PullRequest
0 голосов
/ 05 февраля 2020

Я использую этот код для добавления пункта меню в определенную позицию 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.

Есть идеи? Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...