wp_add_dashboard_widget

Добавляет виджет (метабокс) в консоль (основная страница админ-панели).

Функция должна вызываться во время события wp_dashboard_setup.

Хуков нет.

Возвращает

Ничего не возвращает, а добавляет метабокс.

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

wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback, $callback_args );
$widget_id(строка) (обязательный)
Идентификатор виджета. Будет использован в CSS классе блока виджета. Станет ключом виджета в массиве виджетов.
$widget_name(строка) (обязательный)
Название виджета. Будет видно в верхней части виджета. Пр.: “Последние комментарии”.
$callback(строка) (обязательный)
Название PHP функции, которая будет выводить на экран содержание виджета.
$control_callback(строка)
Название функции которая будет обрабатывать запрос редактирования виджета. В этой функции нужно сохранять настройки виджета и выводить форму настроек.
По умолчанию: null
$callback_args(массив) (обязательный)
Аргументы, которые будут переданы в функцию обратного вызова. callback функция получит объект $post и другие параметры переданные через эту переменную.
По умолчанию: null

Примеры

#1 Добавление виджета в консоль

Это демонстративный пример добавления виджета на страницу админ-панели:

<?php
function wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback = null, $callback_args = null ) {
	$screen = get_current_screen();
	global $wp_dashboard_control_callbacks;

	$private_callback_args = array( '__widget_basename' => $widget_name );

	if ( is_null( $callback_args ) ) {
		$callback_args = $private_callback_args;
	} else if ( is_array( $callback_args ) ) {
		$callback_args = array_merge( $callback_args, $private_callback_args );
	}

	if ( $control_callback && current_user_can( 'edit_dashboard' ) && is_callable( $control_callback ) ) {
		$wp_dashboard_control_callbacks[$widget_id] = $control_callback;
		if ( isset( $_GET['edit'] ) && $widget_id == $_GET['edit'] ) {
			list($url) = explode( '#', add_query_arg( 'edit', false ), 2 );
			$widget_name .= ' <span class="postbox-title-action"><a href="' . esc_url( $url ) . '">' . __( 'Cancel' ) . '</a></span>';
			$callback = '_wp_dashboard_control_callback';
		} else {
			list($url) = explode( '#', add_query_arg( 'edit', $widget_id ), 2 );
			$widget_name .= ' <span class="postbox-title-action"><a href="' . esc_url( "$url#$widget_id" ) . '" class="edit-box open-box">' . __( 'Configure' ) . '</a></span>';
		}
	}

	$side_widgets = array( 'dashboard_quick_press', 'dashboard_primary' );

	$location = 'normal';
	if ( in_array($widget_id, $side_widgets) )
		$location = 'side';

	$priority = 'core';
	if ( 'dashboard_browser_nag' === $widget_id )
		$priority = 'high';

	add_meta_box( $widget_id, $widget_name, $callback, $screen, $location, $priority, $callback_args );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *