我有一个自定义主题,其中包括几个模板部分。我打算在主题文件中使用主题模板部分,并将它们用作短代码。
为了创建短代码,我目前正在将每个模板部分包装在其自己的短代码函数中。示例:
function foo_shortcode() {
ob_start();
require_once( get_stylesheet_directory() . \'/template-parts/foo.php\');
return ob_get_clean();
} add_shortcode(\'foo\', \'foo_shortcode\');
是否可以使用
foreach
基于短代码名数组的循环?所有模板零件都存储在同一文件夹中。
我的当前代码出现错误Parse error: syntax error, unexpected \'$function_name\' (T_VARIABLE), expecting \'(\'
当前代码:
$shortcodes = array(
\'foo\',
\'bar\',
\'lorem\',
\'ipsum\',
\'dolah\'
);
foreach ($shortcodes as $shortcode) {
$filepath = get_stylesheet_directory() . \'/template-parts/\' . $shortcode . \'.php\';
$function_name = $shortcode . "_function";
function $function_name () {
ob_start();
require_once($filepath);
return ob_get_clean();
} add_shortcode($shortcode, $function_name);
}