функция since 1.5.0

add_menu_page()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

add_menu_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = '', string $icon_url = '', int|float $position = null ): string

Описание

Принимает право доступа, которое используется для определения того, включается ли страница в меню.
Функция, подключённая для вывода содержимого страницы, также должна проверять, что пользователь обладает необходимым правом доступа.

Оригинал (английский)

This function takes a capability which will be used to determine whether or not a page is included in the menu.

The function which is hooked in to handle the output of the page must check that the user has the required capability as well.

Параметры

$page_title string обязательный
Текст, отображаемый в тегах заголовка страницы при выборе пункта меню.
$menu_title string обязательный
Текст, используемый для пункта меню.
$capability string обязательный
Право доступа, необходимое для отображения этого меню пользователю.
$menu_slug string обязательный
Слаг, по которому будет обозначаться это меню. Должен быть уникальным для этой страницы меню и содержать только строчные буквенно-цифровые символы, дефисы и подчёркивания для совместимости с sanitize_key() .
$callback callable необязательный = ''
Функция, вызываемая для вывода содержимого этой страницы.
$icon_url string необязательный = ''
URL значка, используемого для этого меню. Передайте SVG в кодировке base64 через data URI — он будет окрашен в соответствии с цветовой схемой. Значение должно начинаться с 'data:image/svg+xml;base64,'. Передайте имя вспомогательного класса Dashicons, чтобы использовать шрифтовой значок, например 'dashicons-chart-pie'. Передайте 'none', чтобы оставить div.wp-menu-image пустым и добавить значок через CSS.
$position int|float необязательный = null
Позиция в порядке меню, на которой должен появиться этот пункт.

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

string

Исходный код

wp-admin/includes/plugin.php:1391

function add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $callback = '', $icon_url = '', $position = null ) {
	global $menu, $admin_page_hooks, $_registered_pages, $_parent_pages;

	$menu_slug = plugin_basename( $menu_slug );

	$admin_page_hooks[ $menu_slug ] = sanitize_title( $menu_title );

	$hookname = get_plugin_page_hookname( $menu_slug, '' );

	if ( ! empty( $callback ) && ! empty( $hookname ) && current_user_can( $capability ) ) {
		add_action( $hookname, $callback );
	}

	if ( empty( $icon_url ) ) {
		$icon_url   = 'dashicons-admin-generic';
		$icon_class = 'menu-icon-generic ';
	} else {
		$icon_url   = set_url_scheme( $icon_url );
		$icon_class = '';
	}

	$new_menu = array( $menu_title, $capability, $menu_slug, $page_title, 'menu-top ' . $icon_class . $hookname, $hookname, $icon_url );

	if ( null !== $position && ! is_numeric( $position ) ) {
		_doing_it_wrong(
			__FUNCTION__,
			sprintf(
				/* translators: %s: add_menu_page() */
				__( 'The seventh parameter passed to %s should be numeric representing menu position.' ),
				'<code>add_menu_page()</code>'
			),
			'6.0.0'
		);
		$position = null;
	}

	if ( null === $position || ! is_numeric( $position ) ) {
		$menu[] = $new_menu;
	} elseif ( isset( $menu[ (string) $position ] ) ) {
		$collision_avoider = (int) base_convert( substr( md5( $menu_slug . $menu_title ), -4 ), 16, 10 ) * 0.00001;
		$position          = (string) ( $position + $collision_avoider );
		$menu[ $position ] = $new_menu;
	} else {
		/*
		 * Cast menu position to a string.
		 *
		 * This allows for floats to be passed as the position. PHP will normally cast a float to an
		 * integer value, this ensures the float retains its mantissa (positive fractional part).
		 *
		 * A string containing an integer value, eg "10", is treated as a numeric index.
		 */
		$position          = (string) $position;
		$menu[ $position ] = $new_menu;
	}

	$_registered_pages[ $hookname ] = true;

	// No parent as top level.
	$_parent_pages[ $menu_slug ] = false;

	return $hookname;
}

История изменений

ВерсияОписание
1.5.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.