Wordpress短代码是否可以具有不含此类值的属性?
[foo some_att]
我知道它可能是这样的:
[foo some_att=""]
我可以有这样的短代码值(带有花括号)吗?
[foo path="{'quality': '720p', 'mp4': 'PATH_TO_MP4_VIDEO'}"]
答案 0 :(得分:0)
您肯定可以! RichJenks上有一篇简短但内容丰富的文章,介绍了如何实现此功能,归纳为定义一个新函数,该函数可以告诉您$atts
数组中是否存在标志(无关联值的参数):< / p>
function is_flag( $flag, $atts ) {
foreach ( $atts as $key => $value )
if ( $value === $flag && is_int( $key ) ) return true;
return false;
}
定义此函数后,您可以在简码函数中引用is_flag()
,以判断该标志是否已作为简码调用的一部分提供:
if is_flag( 'some_att', $atts )
// flag is present
else
// flag is not present
不幸的是,您提供的示例不适用于Wordpress短代码解析器的参数值。根据官方Wordpress documentation on the Shortcode API的说法:
属性值不得包含以下字符:
- 方括号:[]
- 行情:“'
由于您的示例使用单引号字符('
),因此短代码解析引擎正式不支持该字符。