wp_render_widget_control()
云策文档标注
概述
wp_render_widget_control() 函数用于调用指定小部件的控制回调函数并返回其输出。它检查回调是否可调用,通过 ob_start() 和 ob_get_clean() 捕获输出。
关键要点
- 函数调用小部件的控制回调,返回输出字符串或 null
- 参数 $id 为必需的小部件 ID 字符串
- 返回值类型为 string|null,若回调不存在则返回 null
- 内部使用全局变量 $wp_registered_widget_controls 获取回调信息
- 通过 ob_start() 和 ob_get_clean() 捕获输出
代码示例
function wp_render_widget_control( $id ) {
global $wp_registered_widget_controls;
if ( ! isset( $wp_registered_widget_controls[ $id ]['callback'] ) ) {
return null;
}
$callback = $wp_registered_widget_controls[ $id ]['callback'];
$params = $wp_registered_widget_controls[ $id ]['params'];
ob_start();
if ( is_callable( $callback ) ) {
call_user_func_array( $callback, $params );
}
return ob_get_clean();
}注意事项
- 函数自 WordPress 5.8.0 版本引入
- 在 WP_REST_Widgets_Controller::prepare_item_for_response() 中使用,用于 REST API 响应准备
- 确保 $id 对应的小部件控制已注册,否则可能返回 null
原文内容
Calls the control callback of a widget and returns the output.
Parameters
$idstringrequired-
Widget ID.
Source
function wp_render_widget_control( $id ) {
global $wp_registered_widget_controls;
if ( ! isset( $wp_registered_widget_controls[ $id ]['callback'] ) ) {
return null;
}
$callback = $wp_registered_widget_controls[ $id ]['callback'];
$params = $wp_registered_widget_controls[ $id ]['params'];
ob_start();
if ( is_callable( $callback ) ) {
call_user_func_array( $callback, $params );
}
return ob_get_clean();
}
Changelog
| Version | Description |
|---|---|
| 5.8.0 | Introduced. |