wp_nav_menu_taxonomy_meta_boxes()WP 3.0.0

Создаёт метабокс под любую таксономию в аккордеоне на странице создания меню.

Работает на основе функции get_taxonomies(), с параметром 'show_in_nav_menus' => true.

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

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

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

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

add_meta_box( "add-{$id}", $tax->labels->name, 'wp_nav_menu_item_taxonomy_meta_box', 'nav-menus', 'side', 'default', $tax );

Где:

  • $tax - объект таксономии.
  • $tax->labels->name - заголовок таксономии, например Рубрики, Метки и так далее.
  • $id = $tax->name - название таксономии, например category, post_tag и так далее.
Работает на основе: get_taxonomies(), add_meta_box()
Хуки из функции

Возвращает

null. Ничего (null).

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

wp_nav_menu_taxonomy_meta_boxes();

Примеры

0

#1 Используется в ядре WP

Пример использования смотрите в файле /wp-admin/nav-menus.php.

Список изменений

С версии 3.0.0 Введена.

Код wp_nav_menu_taxonomy_meta_boxes() WP 6.4.1

function wp_nav_menu_taxonomy_meta_boxes() {
	$taxonomies = get_taxonomies( array( 'show_in_nav_menus' => true ), 'object' );

	if ( ! $taxonomies ) {
		return;
	}

	foreach ( $taxonomies as $tax ) {
		/** This filter is documented in wp-admin/includes/nav-menu.php */
		$tax = apply_filters( 'nav_menu_meta_box_object', $tax );

		if ( $tax ) {
			$id = $tax->name;
			add_meta_box(
				"add-{$id}",
				$tax->labels->name,
				'wp_nav_menu_item_taxonomy_meta_box',
				'nav-menus',
				'side',
				'default',
				$tax
			);
		}
	}
}