wp_ajax_dashboard_widgets()
云策文档标注
概述
wp_ajax_dashboard_widgets() 是一个 WordPress AJAX 处理函数,用于管理仪表盘小部件。它通过 AJAX 请求加载特定小部件,如“WordPress 事件和新闻”。
关键要点
- 函数位于 wp-admin/includes/ajax-actions.php,通过 AJAX 处理仪表盘小部件请求。
- 使用 $_GET['widget'] 参数判断要加载的小部件,例如 'dashboard_primary' 对应 wp_dashboard_primary()。
- 根据 $_GET['pagenow'] 设置当前屏幕,支持 'dashboard'、'dashboard-user' 和 'dashboard-network'。
- 调用 wp_die() 结束执行,确保 AJAX 响应正确终止。
代码示例
function wp_ajax_dashboard_widgets() {
require_once ABSPATH . 'wp-admin/includes/dashboard.php';
$pagenow = $_GET['pagenow'];
if ( 'dashboard-user' === $pagenow || 'dashboard-network' === $pagenow || 'dashboard' === $pagenow ) {
set_current_screen( $pagenow );
}
switch ( $_GET['widget'] ) {
case 'dashboard_primary':
wp_dashboard_primary();
break;
}
wp_die();
}注意事项
- 此函数自 WordPress 3.4.0 版本引入,是核心 AJAX 动作的一部分。
- 依赖 wp-admin/includes/dashboard.php 文件,确保在调用前已包含。
- 仅处理 'dashboard_primary' 小部件,其他小部件可能需要扩展 switch 语句。
- 使用 $_GET 参数,需确保 AJAX 请求传递正确的 'widget' 和 'pagenow' 值。
原文内容
Handles dashboard widgets via AJAX.
Source
function wp_ajax_dashboard_widgets() {
require_once ABSPATH . 'wp-admin/includes/dashboard.php';
$pagenow = $_GET['pagenow'];
if ( 'dashboard-user' === $pagenow || 'dashboard-network' === $pagenow || 'dashboard' === $pagenow ) {
set_current_screen( $pagenow );
}
switch ( $_GET['widget'] ) {
case 'dashboard_primary':
wp_dashboard_primary();
break;
}
wp_die();
}
Changelog
| Version | Description |
|---|---|
| 3.4.0 | Introduced. |