我试图找出如何弄清楚如何检查短代码属性是否相等而不是设置变量。
我有一个属性为float的图像短代码,如果用户输入float =“right”作为属性,我想设置一个向右浮动的类,但如果不是什么也不做。
add_shortcode( 'img', 'img_shortcode' );
function img_shortcode( $atts, $content = null ) {
$atts = shortcode_atts(
array(
'float' =>'',
), $atts);
$ImgFloat = '';
if(float attribute = right){
$ImgFloat = 'class="img-right"';
}
return '
<div class="img-shortcode">
<img '. $ImgFloat .' src="'. $content .'" />
</div>
';
}
上面是短代码,因为你可以看到If语句是我遇到麻烦的地方,我想弄清楚如果设置为右,如何检查属性float是否设置为任何东西,比使$ imgFloat变量等于我设置的浮动右类。
答案 0 :(得分:1)
改变这个:
if(float attribute = right){
$ImgFloat = 'class="img-right"';
}
对此:
if ( 'right' == $atts['float'] ) {
$ImgFloat = 'class="img-right"';
}
好的,所以我可能会通过翻转条件来复杂化答案,但这是一个很好的习惯进入:)
重要的是我们要说的是$atts['float']
,即短代码中float =“”的值是否等于右边然后添加类。
shortcode_atts(...
是$atts['float']
的默认值。如果用户没有输入float =“..那么该值为空字符串。
答案 1 :(得分:0)
shortcode_atts
返回一个数组,该数组将传入的参数与您指定的默认值相结合。因此,float属性将存储在$atts['float']