短码中的默认属性不起作用

时间:2011-08-30 作者:Laxmidi

我正在学习短代码。我的短代码工作正常。但是,我没有得到属性的默认值。

function csf_cap_databaseinfo($atts,$content=null) {
    global $wpdb;

    shortcode_atts( array(\'title\'=>\'My Default\', \'year\'=>\'1900\'), $atts); 

    $greeting = $wpdb->get_results($wpdb->prepare("SELECT * FROM wp_test;")); 

     $out = \'<h3>\'.$atts[\'title\'].\'</h3> <h3>\'.$atts[\'year\'].\'</h3><table>
                    <tr>
                        <th style="border:1px solid #e7e7e7; padding:10px; text-align:center">ID</th>
                        <th style="border:1px solid #e7e7e7; padding:10px; text-align:center">Greeting</th>
                    </tr>\'; 

    foreach ($greeting as $greet)
        { 
        $out .= \'<tr><td style="border:1px solid #e7e7e7; padding:10px; text-align:center">\'. $greet->id .\'</td>\'; 
        $out .= \'<td style="border:1px solid #e7e7e7; padding:10px; text-align:center">\'. $greet->greeting .\'</td></tr>\';
        }

      $out .= \'</table>\'; 



        return $out; 

}
因此,如果有人在帖子中键入[数据库信息],没有任何属性,他们就不会得到“我的默认值”和“1900”。如果他们输入:[db info title=“Hello”year=“1973”],它将按预期工作。我做错了什么?

谢谢

-拉克西米迪

1 个回复
最合适的回答,由SO网友:mfields 整理而成

Try:

 $atts = shortcode_atts( array( \'title\' => \'My Default\', \'year\' => \'1900\' ), $atts ); 
结束

相关推荐

Shortcode empty attribute

有没有办法为短代码创建一个空属性?示例:function paragraph_shortcode( $atts, $content = null ) { return \'<p class=\"super-p\">\' . do_shortcode($content) . \'</p>\'; } add_shortcode(\'paragraph\', \'paragraph_shortcode\'); 用户类型某物它显