Удаление местоположения навигационного меню с функцией unregister_nav_menu()

## UNREGISTER_NAV_MENU() │ WP 3.1.0

Функция unregister_nav_menu() испол��зуется для удаления (отмены регистрации) местоположения навигационного меню в теме WordPress.

### Возвращаемое значение

Функция возвращает true в случае успеха и false в случае неудачи.

### Использование

Чтобы использовать эту функцию, вызовите её следующим образом:

```php
unregister_nav_menu( $location );
  • $location (строка) — обязательный параметр, идентификатор местоположения меню.

Примеры

Простой пример

Допустим, вы хотите удалить ранее зарегистрированное навигационное меню с идентификатором primary. Это нужно сделать на хуке init через поздние вызовы, после всех регистраций.

add_action( 'init', 'theme_register_nav_menu', 20 );

function theme_register_nav_menu() {
    unregister_nav_menu( 'primary' );
}

Примечания

  • Внутри функции используется глобальный массив $_wp_registered_nav_menus, который хранит все зарегистрированные места для меню.

Изменения

  • С версии 3.1.0 — функция была введена.

Код функции

Ниже приведен код функции unregister_nav_menu(), как он реализован в WordPress:

function unregister_nav_menu( $location ) {
    global $_wp_registered_nav_menus;

    if ( is_array( $_wp_registered_nav_menus ) && isset( $_wp_registered_nav_menus[ $location ] ) ) {
        unset( $_wp_registered_nav_menus[ $location ] );
        if ( empty( $_wp_registered_nav_menus ) ) {
            _remove_theme_support( 'menus' );
        }
        return true;
    }
    return false;
}

Связанные функции

Функция unregister_nav_menu() работает в связке с другими функциями навигационного меню в WordPress:

  • register_nav_menu() — для регистрации нового меню.
  • has_nav_menu() — проверяет, есть ли зарегистрированное меню для указанного местоположения.
  • wp_nav_menu() — для отображения навигационного меню на сайте.

Эти функции помогут вам более эффективно управлять навигационными меню.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *