WordPress函数:add_shortcode 添加短代码

江河/ 2023年12月02日/ WordPress/ 浏览 269

函数原型:


add_shortcode( string $tag, callable $callback )


添加新的短代码


应注意前缀或其他方式,以确保添加的短代码标签是唯一的,不会与其他已添加的短码标签冲突。如果标签重复,最后加载的标签将优先。


参数说明:


$tag,短代码名称


$callback,回调函数


shortcode回调将传递三个参数:shortcode属性、shortcode内容(如果有的话)和shortcode的名称。


每个短代码只能有一个钩子。这意味着,如果另一个插件有类似的短代码,它将覆盖你的,或者你的将覆盖他们的,这取决于插件的包含和/或运行顺序。


短代码属性名称在传递到处理程序函数之前总是转换为小写。价值观是不变的。


请注意,shortcode调用的函数永远不应该产生任何类型的输出。短代码函数应返回用于替换短代码的文本。直接产生输出将导致意想不到的结果。这与过滤器函数的行为方式类似,因为它们不应该从调用中产生意外的副作用,因为您无法控制何时何地调用它们。


函数源码:


function add_shortcode( $tag, $callback ) {
	global $shortcode_tags;

	if ( '' === trim( $tag ) ) {
		_doing_it_wrong(
			__FUNCTION__,
			__( 'Invalid shortcode name: Empty name given.' ),
			'4.4.0'
		);
		return;
	}

	if ( 0 !== preg_match( '@[<>&/\[\]\x00-\x20=]@', $tag ) ) {
		_doing_it_wrong(
			__FUNCTION__,
			sprintf(
				/* translators: 1: Shortcode name, 2: Space-separated list of reserved characters. */
				__( 'Invalid shortcode name: %1$s. Do not use spaces or reserved characters: %2$s' ),
				$tag,
				'& / < > [ ] ='
			),
			'4.4.0'
		);
		return;
	}

	$shortcode_tags[ $tag ] = $callback;
}


使用举例:


add_shortcode( 'footag', 'wpdocs_footag_func' );
function wpdocs_footag_func( $atts ) {
	return "foo = {$atts['foo']}";
}


发表评论

暂无评论,抢个沙发...

客服 工单