WordPress 函数:shortcode_atts

将用户输入的短代码的属性值和短代码默认属性值合并,结果将包含所有已知属性的每个 key,他们的值是合并之后的结果。

用法

<?php shortcode_atts( $pairs , $atts ); ?>

参数

$pairs
(array) (required) 所有支持的属性和他们默认值的完整列表。
Default: None

$atts
(array) (required) 用户在短代码标签中输入的属性值
Default: None

返回值

(array)
用户输入和默认两者合并和过滤之后的列表。

实例

function antispambot_shortcode_handler($atts, $content='') {
	extract( shortcode_atts( array(
		'link' => '0'
	), $atts ) );
	
	if($link){
		return '<a href="mailto:'.antispambot($content,1).'" title="mail to '.antispambot($content,0).'">'.antispambot($content,0).'</a>';
	}else{
		return antispambot( $content,0);
	}
}
add_shortcode('email', 'antispambot_shortcode_handler');

上面代码创建了一个 [email]] ” 的短代码,它支持一个属性: [[email link="1"]your-email@email.com[/email] ,这个属性是可选的,并且如果没有设置将使用默认值,这里使用 PHP 的 extract 函数是将合并之后的数组的每个 key 作为一个单独的变量更方便使用和访问,这里只有一个:$link,并且 shortcode_atts 函数完成调用之后,$atts 这个数组将不会被修改。

注解

$pairs 数据应该是短代码所有支持的属性的列表,返回的属性应该只在 $pairs 属性列表中的。

如果 $atts 列表中含有未被支持的属性,在最后返回的列表中将被忽略并被移除。

修改记录

Since: 2.5

源文件

wp-includes/shortcodes.php

点赞