描述:
此函数使用WordPress小工具api给管理面板添加一个新的小部件。
用法:
wp_add_dashboard_widget($widget_id, $widget_name, $callback, $control_callback, $callback_args );
参数:
$widget_id
(string) (必填) 小工具ID,将用它最为css的class和它在小工具数组中的键值。
默认值: None
$widget_name
(string) (必填) 名称
默认值: None
$callback
(string) (必填) 显示小工具实际内容的函数名称。
默认值: None
$control_callback
(string) (可选) 创建的函数名称,该函数将处理小工具选项(配置)表单的提交,并且还将显示表单元素。
默认值:
$callback_args
(array) (可选) 要传递到回调函数的参数。回调将接收$post对象以及通过该变量传递的任何参数。
默认值:
示例:
// Function that outputs the contents of the dashboard widget function dashboard_widget_function( $post, $callback_args ) { echo "Hello World, this is my first Dashboard Widget!"; } // Function used in the action hook function add_dashboard_widgets() { wp_add_dashboard_widget('dashboard_widget', 'Example Dashboard Widget', 'dashboard_widget_function'); } // Register the new dashboard widget with the 'wp_dashboard_setup' action add_action('wp_dashboard_setup', 'add_dashboard_widgets' );
源文件:
/** * * @global array $wp_dashboard_control_callbacks * * @param string $widget_id * @param string $widget_name * @param callback $callback * @param callback $control_callback * @param array $callback_args */ 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; 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 .= ' ' . __( 'Cancel' ) . ''; $callback = '_wp_dashboard_control_callback'; } else { list($url) = explode( '#', add_query_arg( 'edit', $widget_id ), 2 ); $widget_name .= ' ' . __( 'Configure' ) . ''; } } $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 ); }