我有一个短代码,我想在将某个属性添加到短代码后传递一个不同的类。你是怎样做的?或者最好的方法是什么?
简码:
function one_half_columns($atts, $content = null){
$type = shortcode_atts( array(
'default' => 'col-md-6',
'push' => 'col-xs-6'
), $atts );
return '<div class="' . $type['push'] . '">' . do_shortcode($content) . '</div>';;
}
add_shortcode('one_half', 'one_half_columns');
当wordpress用户输入[one_half type="push"]
时,我希望它使用数组push
中col-xs-6
的值。
答案 0 :(得分:1)
你的例子有几个问题 - 你传递的是#34;类型&#34;在你的短代码中,然后期待&#34;默认&#34;和&#34;推&#34;在您的短代码中。您要执行的操作是将shortcode_atts()
的结果分配给$atts
,然后在if
上使用switch
语句或$atts['type']
个案;
function one_half_columns($atts, $content = null){
// populate $atts with defaults
$atts = shortcode_atts( array(
'type' => 'default'
), $atts );
// check the value of $atts['type'] to set $cssClass
switch( $atts['type'] ){
case 'push':
$cssClass = 'col-xs-6';
break;
default:
$cssClass = 'col-md-6';
break;
}
return '<div class="' . $cssClass . '">' . do_shortcode($content) . '</div>';
}
add_shortcode( 'one_half', 'one_half_columns' );
现在打电话的时候:
[one_half type="push"]my content[/one_half]
你应该得到输出:
<div class="col-xs-6">my content</div>