render_block_core_legacy_widget

函式
render_block_core_legacy_widget ( $attributes )
引數
  • (array) $attributes The block attributes.
    Required:
返回值
  • (string) Rendered block.
定義位置
相關方法
register_block_core_legacy_widgetrender_block_core_widget_grouprender_block_core_imagerender_block_core_archivesrender_block_core_loginout
引入
-
棄用
-

render_block_core_legacy_widget: 這個函式用來渲染WordPress中的傳統小工具塊。Legacy Widget塊允許使用者顯示他們網站以前的版本或與塊編輯器不相容的外掛的Widget: 這個函式負責生成Legacy Widget塊的HTML標記。

渲染’core/legacy-widget’區塊。

function render_block_core_legacy_widget( $attributes ) {
	global $wp_widget_factory;

	if ( isset( $attributes['id'] ) ) {
		$sidebar_id = wp_find_widgets_sidebar( $attributes['id'] );
		return wp_render_widget( $attributes['id'], $sidebar_id );
	}

	if ( ! isset( $attributes['idBase'] ) ) {
		return '';
	}

	$id_base       = $attributes['idBase'];
	$widget_key    = $wp_widget_factory->get_widget_key( $id_base );
	$widget_object = $wp_widget_factory->get_widget_object( $id_base );

	if ( ! $widget_key || ! $widget_object ) {
		return '';
	}

	if ( isset( $attributes['instance']['encoded'], $attributes['instance']['hash'] ) ) {
		$serialized_instance = base64_decode( $attributes['instance']['encoded'] );
		if ( ! hash_equals( wp_hash( $serialized_instance ), (string) $attributes['instance']['hash'] ) ) {
			return '';
		}
		$instance = unserialize( $serialized_instance );
	} else {
		$instance = array();
	}

	$args = array(
		'widget_id'   => $widget_object->id,
		'widget_name' => $widget_object->name,
	);

	ob_start();
	the_widget( $widget_key, $instance, $args );
	return ob_get_clean();
}

常見問題

FAQs
檢視更多 >