php - wordpress:仅在短代码出现的地方加载 javascript

标签 php wordpress

有一个有趣的难题。我需要为我的插件加载大约 8 个 javascript 文件和相同数量的样式。只有在运行我的短代码的地方才需要这些。

我尝试使用 print_styles 和 print_scripts 加载它们,但它们没有正确呈现,而且这样做会破坏 xhtml 验证。因此,目前它们会加载到每个页面上,并且由于需要的文件数量,将其保留这样是不可行的。

在另一个项目中,我在我的插件的 index.php 文件中编写了一个函数,它会获取当前页面,在其中搜索我的短代码,如果只找到它,它就会打印脚本,但这是一个丑陋的 hack。

有没有人有任何建议或解决方案? 任何帮助,将不胜感激, 问候, 大提

最佳答案

回答我自己的问题......我第一次写了它。您必须搜索每个页面以检查是否正在使用您的短代码。这必须在加载页面数据时和显示页面之前完成。对我来说,这对系统来说完全是矫枉过正,但不幸的是,它就是这样。我从以下位置获得了这些信息: get_shortcode_regexold nabble

那么首先:

add_action('template_redirect','wp_my_shortcode_head');

然后:

function wp_my_shortcode_head(){
  global $posts;
  $pattern = get_shortcode_regex(); 
  preg_match('/'.$pattern.'/s', $posts[0]->post_content, $matches); 
  if (is_array($matches) && $matches[2] == 'YOURSHORTCODE') { 
        //shortcode is being used 
  }
}

将“YOURSHORTCODE”替换为您的简码名称,并将您的 wp_enqueue_scripts 添加到它显示//正在使用简码的位置。

关于php - wordpress:仅在短代码出现的地方加载 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6235338/

相关文章:

wordpress - IIS 10 三个站点使用 header ,1 个有效,2 个超时

php - WordPress:get_option 检索数组

php - WooCommerce:从订阅订单中获取名称和变体

PHP编码电子邮件地址

php - 从 Laravel 的存储中下载文件

php - 通过 mod-rewrite 创建数千个 url

wordpress - 在 Wordpress 中上传图片时出现 HTTP 错误

php - wordpress 数据库的自动同步需要更新它

javascript - 当下拉值相同时如何调用onchange事件

javascript - PHP/CSS 特定函数,其中页面位于页面顶部?