函数文档

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.

Return

string|null

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.