描述:
此函数使用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 .= ' <span class="postbox-title-action"><a href="https://wphun.com/f/'%20.%20esc_url(%20$url%20)%20.%20'">' . __( '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 class="edit-box open-box" href="https://wphun.com/f/'%20.%20esc_url(">' . __( '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 );
}
写一条评论