wpseek.com
WordPress开发者和主题制作者的搜索引擎



wp_add_dashboard_widget › WordPress Function

Since2.7.0
已弃用n/a
wp_add_dashboard_widget ( $widget_id, $widget_name, $callback, $control_callback = null, $callback_args = null, $context = 'normal', $priority = 'core' )
参数: (7)
  • (string) $widget_id Widget ID (used in the 'id' attribute for the widget).
    Required: Yes
  • (string) $widget_name Title of the widget.
    Required: Yes
  • (callable) $callback Function that fills the widget with the desired content. The function should echo its output.
    Required: Yes
  • (callable) $control_callback Optional. Function that outputs controls for the widget. Default null.
    Required: No
    默认: null
  • (array) $callback_args Optional. Data that should be set as the $args property of the widget array (which is the second parameter passed to your callback). Default null.
    Required: No
    默认: null
  • (string) $context Optional. The context within the screen where the box should display. Accepts 'normal', 'side', 'column3', or 'column4'. Default 'normal'.
    Required: No
    默认: 'normal'
  • (string) $priority Optional. The priority within the context where the box should show. Accepts 'high', 'core', 'default', or 'low'. Default 'core'.
    Required: No
    默认: 'core'
定义在:
文档:
Change Log:
  • 5.6.0

Adds a new dashboard widget.



源码

function wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback = null, $callback_args = null, $context = 'normal', $priority = 'core' ) {
	global $wp_dashboard_control_callbacks;

	$screen = get_current_screen();

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

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

	if ( $control_callback && is_callable( $control_callback ) && current_user_can( 'edit_dashboard' ) ) {
		$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' );

	if ( in_array( $widget_id, $side_widgets, true ) ) {
		$context = 'side';
	}

	$high_priority_widgets = array( 'dashboard_browser_nag', 'dashboard_php_nag' );

	if ( in_array( $widget_id, $high_priority_widgets, true ) ) {
		$priority = 'high';
	}

	if ( empty( $context ) ) {
		$context = 'normal';
	}

	if ( empty( $priority ) ) {
		$priority = 'core';
	}

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