WordPress как на ладони
Дешевый WordPress пакет для разработки Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

wp_nav_menu_post_type_meta_boxes() WP 3.0.0

Создаёт метабокс под любой тип поста в аккордеоне на странице создания меню. Работает на основе функции get_post_types(), с переданным параметром 'show_in_nav_menus' => true.

Функция используется движком и как правило не предназначена для использования где-либо.

Для отображения подобных метабоксов для таксономий используется wp_nav_menu_taxonomy_meta_boxes().

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

Метабокс добавляется функцией add_meta_box() по следующему шаблону:

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 );

Где:

  • $post_type->name - имя поста, например post, page и так далее.
  • $id = $post_type->name.
  • $priority = ( 'page' == $post_type->name ? 'core' : 'default' ).
  • $post_type объект типа поста.
Работает на основе: add_meta_box()
Хуки из функции:
Возвращает

Ничего (null).

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

wp_nav_menu_post_type_meta_boxes();

Код wp_nav_menu_post_type_meta_boxes: wp-admin/includes/nav-menu.php VER 4.9.8

<?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 ) {
		/**
		 * Filters whether a menu items meta box will be added for the current
		 * object type.
		 *
		 * If a falsey value is returned instead of an object, the menu items
		 * meta box for the current meta box object will not be added.
		 *
		 * @since 3.0.0
		 *
		 * @param object $meta_box_object The current object to add a menu items
		 *                                meta box for.
		 */
		$post_type = apply_filters( 'nav_menu_meta_box_object', $post_type );
		if ( $post_type ) {
			$id = $post_type->name;
			// Give pages a higher priority.
			$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 );
		}
	}
}

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

Из метки: Ядро WP

Еще из метки: nav_menu (меню навигации)

campusboy 3053youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 6918
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться