我有一个插件,它有很多css主题文件。当然我不想加载所有这些,只有一个。这取决于配置。对于帖子我使用 has_shortcode 函数,但是对于使用 do_shortcode 函数的模板,如何做同样的事情。
注意:
我找到了一个很好的解决方案,我使用
$this->loader->add_action( 'init', $plugin_public, 'register_scripts');
$this->loader->add_action( 'wp_footer', $plugin_public, 'print_scripts');
在短代码句柄内部,我将全局变量设置为 true
global $imagelink_plugin_shortcode_used;
$imagelink_plugin_shortcode_used = true;
如果我的全局变量为真
,则 print_scripts 函数会添加我的脚本public function print_scripts() {
global $imagelink_plugin_shortcode_used;
if ( ! $imagelink_plugin_shortcode_used )
return;
wp_print_scripts($this->plugin_name . '-imagelinks');
}
感谢您的回答。
答案 0 :(得分:0)
您可以做的是在呈现该短代码时注册并排队这些文件,而不是使用has_shortcode函数。
首先,使用wp_register_script
注册您的css文件。请务必将其挂钩到wp_enqueue_scripts
现在,在短代码功能中,将文件排入队列。
wp_enqueue_style('theme-css')
使用这种方式,您可以在任何地方使用短代码,只有在页面上存在短代码时才会加载脚本,无论是在内容还是模板上。