函数文档

register_sidebar_widget()

💡 云策文档标注

概述

register_sidebar_widget() 是一个用于注册侧边栏小工具的 WordPress 函数,提供向后兼容性支持。该函数已被弃用,建议开发者使用 wp_register_sidebar_widget() 替代。

关键要点

  • 函数已弃用:自 WordPress 2.8.0 起,register_sidebar_widget() 被标记为弃用,推荐使用 wp_register_sidebar_widget()。
  • 参数处理:支持 $name 参数为数组,根据数组元素数量自动提取小工具名称,确保向后兼容。
  • 核心功能:通过 wp_register_sidebar_widget() 注册小工具,传递参数如 ID、名称、回调函数和选项。
  • 相关函数:涉及 sanitize_title()、wp_register_sidebar_widget() 和 _deprecated_function() 等辅助函数。

代码示例

function register_sidebar_widget($name, $output_callback, $classname = '', ...$params) {
    _deprecated_function( __FUNCTION__, '2.8.0', 'wp_register_sidebar_widget()' );
    // Compat.
    if ( is_array( $name ) ) {
        if ( count( $name ) === 3 ) {
            $name = sprintf( $name[0], $name[2] );
        } else {
            $name = $name[0];
        }
    }

    $id      = sanitize_title( $name );
    $options = array();
    if ( ! empty( $classname ) && is_string( $classname ) ) {
        $options['classname'] = $classname;
    }

    wp_register_sidebar_widget( $id, $name, $output_callback, $options, ...$params );
}

注意事项

  • 弃用警告:使用此函数会触发 _deprecated_function(),建议更新代码以避免未来兼容性问题。
  • 参数类型:$name 可以是字符串或数组,$output_callback 必须是可调用函数,$classname 为可选字符串。
  • 版本历史:函数在 WordPress 2.2.0 引入,2.8.0 弃用,开发者应关注版本更新。

📄 原文内容

Register widget for sidebar with backward compatibility.

Description

Allows $name to be an array that accepts either three elements to grab the first element and the third for the name or just uses the first element of the array for the name.

Passes to wp_register_sidebar_widget() after argument list and backward compatibility is complete.

See also

Parameters

$namestring|intrequired
Widget ID.
$output_callbackcallablerequired
Run when widget is called.
$classnamestringoptional
Classname widget option. Default empty.
$paramsmixedoptional
Widget parameters.

Source

function register_sidebar_widget($name, $output_callback, $classname = '', ...$params) {
	_deprecated_function( __FUNCTION__, '2.8.0', 'wp_register_sidebar_widget()' );
	// Compat.
	if ( is_array( $name ) ) {
		if ( count( $name ) === 3 ) {
			$name = sprintf( $name[0], $name[2] );
		} else {
			$name = $name[0];
		}
	}

	$id      = sanitize_title( $name );
	$options = array();
	if ( ! empty( $classname ) && is_string( $classname ) ) {
		$options['classname'] = $classname;
	}

	wp_register_sidebar_widget( $id, $name, $output_callback, $options, ...$params );
}

Changelog

Version Description
2.8.0 Deprecated. Use wp_register_sidebar_widget()
2.2.0 Introduced.