WP_NAV_MENU_POST_TYPE_META_BOXES(): Создание метабоксов для пунктов меню

# WP_NAV_MENU_POST_TYPE_META_BOXES() │ WP 3.0.0

Функция WP_NAV_MENU_POST_TYPE_META_BOXES() создаёт метабоксы для пунктов меню любого типа записи.

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

Эта функция вызывается так:

```php
wp_nav_menu_post_type_meta_boxes();

Ключевые моменты

  • Возвращаемое значение: null. Функция ничего не возвращает.

Хуки функции

  • nav_menu_meta_box_object позволяет изменить поведение метабокса для конкретного типа записи.

Пример использования

Пример 1

В WP Core, вы можете найти пример использования в функции wp_nav_menu_setup().
Также вы можете взглянуть на файл /wp-admin/nav-menus.php, чтобы увидеть, как это работает на практике.

Код функции

Вот как выглядит код этой функции:


function wp_nav_menu_post_type_meta_boxes() {
$post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'object' );

if ( ! $post_types ) {
    return;
}

foreach ( $post_types as $post_type ) {
    /**
     * Фильтрует, будет ли добавлен метабокс для пункта меню
     * для текущего типа объекта.
     *
     * Если возвращается falsy значение вместо объекта, 
     * метабокс для текущего типа объекта не будет добавлен.
     *
     * @since 3.0.0
     *
     * @param WP_Post_Type|false $post_type Текущий объект, 
     *                                      для которого добавляется метабокс.
     */
    $post_type = apply_filters( 'nav_menu_meta_box_object', $post_type );

    if ( $post_type ) {
        $id = $post_type->name;
        // Устанавливаем большую приоритет для страниц.
        $priority = ( 'page' === $post_type->name ? 'core' : 'default' );
        add_meta_box(
            "add-post-type-{$id}",
            $post_type->labels->name,
            'wp_nav_menu_item_post_type_meta_box',
            'nav-menus',
            'side',
            $priority,
            $post_type
        );
    }
}

}

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

Вот некоторые функции, связанные с wp_nav_menu_post_type_meta_boxes():

  • _deprecated_function() — показывает, если функция устарела.
  • create_initial_post_types() — создаёт начальные типы записей.
  • wp_nav_menu_setup() — подготавливает меню.
  • wp_nav_menu_taxonomy_meta_boxes() — создаёт метабоксы для таксономий.

Навигационное меню (NAV_MENU)

Вот несколько функций, которые могут быть полезны по теме навигационного меню:

  • _wp_menu_item_classes_by_context() — определяет классы элементов меню в зависимости от контекста.
  • get_nav_menu_locations() — получает местоположения навигационного меню.
  • has_nav_menu() — проверяет, создано ли навигационное меню.
  • is_nav_menu() — определяет, является ли данная запись меню.
  • register_nav_menu() — регистрирует одно меню.
  • register_nav_menus() — регистрирует несколько меню.
  • unregister_nav_menu() — отменяет регистрацию меню.
  • Walker_Nav_Menu() — помогает управлять выводом элементов меню.
  • wp_get_nav_menu_items() — получает элементы меню.
  • wp_get_nav_menu_name() — получает имя меню.
  • wp_get_nav_menu_object() — получает объект меню.
  • wp_get_nav_menus() — получает все меню.
  • wp_nav_menu() — выводит меню на страницу.

Статья теперь структурирована, понятна для начинающих пользователей, и содержит все необходимые пояснения.

Leave a Reply

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