Встречается задача, при которой нужно динамически добавить пункт в меню. Пусть это будет меню действий над постом.

В зависимости от ситуации там должны появляться или исчезать какие-то пункты.

Добавлять записи в меню — плохой вариант. Придется постоянно следить за ними, добавлять и удалять записи в БД. Сложно и это не наш путь.

Наш путь это взять хук 🙂

Хук называется wp_nav_menu_objects

Он позволяет перехватить список пунктов меню и сделать с этим списком что угодно. Поменять элементы или скажем добавить еще один. Что нам и нужно… Выглядит это примерно так:

add_filter( 'wp_nav_menu_objects', 'ravs_add_menu_parent_class' );

function ravs_add_menu_parent_class( $items ) {

      $link = array (
            'title'            => 'Cats',
            'menu_item_parent' => id of Animals menu like 1372,
            'ID'               => '',
            'db_id'            => '',
            'url'              => 'www.google.com'
        );

      $items[] = (object) $link;
      return $items;
    }