我正在学习短代码。我的短代码工作正常。但是,我没有得到属性的默认值。
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”],它将按预期工作。我做错了什么?
谢谢
-拉克西米迪
最合适的回答,由SO网友:mfields 整理而成
Try:
$atts = shortcode_atts( array( \'title\' => \'My Default\', \'year\' => \'1900\' ), $atts );