wp_add_dashboard_widget( string $widget_id, string $widget_name, callable $callback, callable $control_callback = null, array $callback_args = null )
Adds a new dashboard widget.
Description Description
Parameters Parameters
- $widget_id
-
(string) (Required) Widget ID (used in the 'id' attribute for the widget).
- $widget_name
-
(string) (Required) Title of the widget.
- $callback
-
(callable) (Required) Function that fills the widget with the desired content. The function should echo its output.
- $control_callback
-
(callable) (Optional) Function that outputs controls for the widget.
Default value: null
- $callback_args
-
(array) (Optional) Data that should be set as the $args property of the widget array (which is the second parameter passed to your callback).
Default value: null
Source Source
File: wp-admin/includes/dashboard.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; } elseif ( 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'; } $high_priority_widgets = array( 'dashboard_browser_nag', 'dashboard_php_nag' ); $priority = 'core'; if ( in_array( $widget_id, $high_priority_widgets, true ) ) { $priority = 'high'; } add_meta_box( $widget_id, $widget_name, $callback, $screen, $location, $priority, $callback_args ); }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
2.7.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Adding dashboard widgets
Here is a simple dashboard widget:
Expand full source codeCollapse full source code
Running dashboard widgets
To run the function use this code:
Adding widgets onto the side
The function doesn’t allow you to choose where you want your widget to go and will automatically add it to the “core” which is the left side. However you are able to get it on the right side very easily.
You can use the
add_meta_box()
function instead ofwp_add_dashboard_widget
. Simply specify ‘dashboard’ in place of the$post_type
. For example: