对我来说,问题是使用一个使用evil()
eval()
首先,要将字符串计算为PHP;-)
此部分来自PHP manual:
注意eval()
语言构造非常危险,因为它允许执行任意PHP代码。因此,不鼓励使用它。如果您已经仔细验证了除了使用此构造之外没有其他选择,请特别注意,在没有事先正确验证的情况下,不要将任何用户提供的数据传递给它。
很可能是global $wpdb
缺少,但我建议您只创建自己的短代码。
Example:
add_shortcode( \'tim_daniels_list\', function( $atts = [], $content = \'\' )
{
global $wpdb;
$years = $wpdb->get_results(
"SELECT YEAR(post_date) AS year
FROM {$wpdb->posts}
WHERE post_type = \'results\' AND post_status = \'publish\'
GROUP BY year DESC"
);
$html = \'\';
foreach ( (array) $years as $year ) {
$html .= \'<h2>\' . $year->year . \'</h2>\';
}
return $html;
});