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

WP load scripts if template has shortcode

我有一个插件,里面有很多css个主题文件。当然我不想加载所有这些,只加载一个。这取决于配置。对于 post 我使用 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 如果我的全局变量是 true

添加我的脚本
public function print_scripts() {
   global $imagelink_plugin_shortcode_used;

   if ( ! $imagelink_plugin_shortcode_used )
       return;

   wp_print_scripts($this->plugin_name . '-imagelinks');
}

感谢您的回答。

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

首先,使用 wp_register_script 注册您的 css 个文件。确保将其连接到 wp_enqueue_scripts

现在,在您的短代码函数中,将文件排队。

wp_enqueue_style('theme-css')

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