如果模板有短代码,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')
使用这种方式,您可以在任何您想要的地方使用短代码,并且只有当页面上存在短代码时才加载脚本,无论它是在内容上还是在模板上。
我有一个插件,里面有很多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')
使用这种方式,您可以在任何您想要的地方使用短代码,并且只有当页面上存在短代码时才加载脚本,无论它是在内容上还是在模板上。