wp_nav_menu_setup()WP 3.0.0

Регистрирует метабоксы и добавляет в настройки экрана секцию "Показывать расширенные свойства меню".

Данная функция вызывается на странице создания и редактирования произвольных меню WordPress.

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

Порядок работы:

  • Вызывается на странице /wp-admin/nav-menus.php
  • Вызывает wp_nav_menu_post_type_meta_boxes() для регистрации метабоксов под каждый тип поста, в котором можно будет выбирать посты как пункт меню.
  • Вызывает add_meta_box( 'add-custom-links', ... ) для регистрации метабокса, позволяющего добавлять произвольные ссылки в меню.
  • Вызывает wp_nav_menu_taxonomy_meta_boxes() под каждую таксономию, в котором можно будет выбирать термины как пункт меню.
  • Вызывает add_filter( 'manage_nav-menus_columns', ...), с помощью которого добавляется в опции экрана выбор расширенных свойств пунктов меню (атрибут title, классы CSS и т.д.) для отображения.
  • Проверяется наличие метаполя managenav-menuscolumnshidden у пользователя и, если его нет, создаёт с дефолтными параметрами отображения расширенных свойств меню. Нужно для моментов, когда пользователь заходит на страницу создания меню впервые.

Хуков нет.

Возвращает

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

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

wp_nav_menu_setup();

Примеры

0

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

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

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

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

Код wp_nav_menu_setup() WP 6.5.2

function wp_nav_menu_setup() {
	// Register meta boxes.
	wp_nav_menu_post_type_meta_boxes();
	add_meta_box(
		'add-custom-links',
		__( 'Custom Links' ),
		'wp_nav_menu_item_link_meta_box',
		'nav-menus',
		'side',
		'default'
	);
	wp_nav_menu_taxonomy_meta_boxes();

	// Register advanced menu items (columns).
	add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns' );

	// If first time editing, disable advanced items by default.
	if ( false === get_user_option( 'managenav-menuscolumnshidden' ) ) {
		$user = wp_get_current_user();
		update_user_meta(
			$user->ID,
			'managenav-menuscolumnshidden',
			array(
				0 => 'link-target',
				1 => 'css-classes',
				2 => 'xfn',
				3 => 'description',
				4 => 'title-attribute',
			)
		);
	}
}