如果模板有短代码,WP加载脚本

时间:2016-11-22 20:23:09

标签: wordpress plugins styles shortcode

我有一个插件,它有很多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');
}

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

您可以做的是在呈现该短代码时注册并排队这些文件,而不是使用has_shortcode函数。

首先,使用wp_register_script注册您的css文件。请务必将其挂钩到wp_enqueue_scripts

现在,在短代码功能中,将文件排入队列。

wp_enqueue_style('theme-css')

使用这种方式,您可以在任何地方使用短代码,只有在页面上存在短代码时才会加载脚本,无论是在内容还是模板上。