我有这段代码用于显示短代码。
<?php function img($atts) {
extract(shortcode_atts(array(
'source' => '<img src="'.get_template_directory_uri().'/images/noimage.jpg" />',
'style' => 'online'
), $atts));
return '<div class="box extend box1" style="here is the conditional if statement, if the style variable is equal to online then output the background: url(images/online.jpg) else if the style variable is equal to notonline then output background: url(images/notonline.jpg)">'.$source.'</div>';
}
function register_shortcodes(){
add_shortcode('img', 'img');
}
add_action( 'init', 'register_shortcodes');
&GT;
没有我试图实现的是这里是条件if语句,如果样式变量等于online然后输出背景:url(images / online.jpg)否则如果样式变量等于notonline则输出背景:url(images / notonline.jpg),有人可以分享至少一个想法如何实现吗?目前我正在寻找我的目标的方法,但不幸的是,还没有结果。
我对建议,建议和想法持开放态度。提前谢谢!
答案 0 :(得分:0)
<?php function img($atts) {
$source = $atts['source'];
$style = $atts['style'];
$ret .= '<div class="box extend box1" style="background: url(images/';
if('online' == $style){
$ret .= 'online.jpg';
}else{
$ret .= 'notonline.jpg';
}
$ret .= ');">'.$source.'</div>';
return $ret;
}
...
?>
应该适用于您想要的内容,extract( shortcode_atts(...))
过度
答案 1 :(得分:0)
这是if/else
的简单问题。请注意,您无需将Shortcode declaration附加到init
操作。另外,请始终在函数名前加上前缀,以避免与其他插件发生冲突。
function my_img($atts) {
extract(shortcode_atts(array(
'source' => '<img src="'.get_template_directory_uri().'/images/noimage.jpg" />',
'style' => 'online'
), $atts));
if( $style == 'online' )
$bg = 'background: url(images/online.jpg)';
else
$bg = 'background: url(images/notonline.jpg)';
return '<div class="box extend box1" style="'.$bg.'">'.$source.'</div>';
}
add_shortcode('img', 'my_img');