短代码默认变量不会出现

时间:2015-03-06 20:06:20

标签: php wordpress function variables shortcode

这是我的代码

function myfunction ( $atts, $content = null ){

$atts = extract(shortcode_atts(array(
'limit' => 1,
'order' => 'ASC',
'columns' => '6'
),$atts));

ob_start(); 
include('php/blogcolumns.php');
$content = ob_get_clean();
return $content;
}
add_shortcode('blogcolumns','myfunction');

问题是默认变量不会出现,只有当它们以短代码添加时才出现。它应该不是那样的。 这是短代码:      [blogcolumns limit =“”order =“”columns =“”]

此代码有什么问题?

2 个答案:

答案 0 :(得分:2)

不要添加没有值的属性。否则你给出一个空字符串的值。所以它没有采用默认值。

e.g

[blogcolumns limit="3" columns="3"]

或者

[blogcolumns limit="5"]

答案 1 :(得分:0)

您没有提供HTML,但您的构造看起来不正确。这是什么:

$atts = extract(shortcode_atts(array(
    'limit' => 1,
    'order' => 'ASC',
    'columns' => '6'
    ),$atts));

确实是创建变量$ limit,$ order和$ columns(这是extract()的作用),并将$ atts设置为整数(从提取返回)。

如果你的HTML正在寻找$ atts [' somekey'],那么它就不会找到它。