【问题标题】:Loading javascript conditionally in Wordpress functions.php在 Wordpress functions.php 中有条件地加载 javascript
【发布时间】:2013-07-07 16:25:50
【问题描述】:

我在 Wordpress 中为我的摄影网站创建了 TwentyTwelve 主题的子主题。

在照片库页面中,单击缩略图会触发 Fancybox 或 Photoswipe,具体取决于屏幕尺寸(如果使用

为了获得更好的性能,我想只加载所需的 javascript、Fancybox 或 Photoswipe,但不能同时加载它们。

  • 我没有使用 Fancybox/Photoswipe 插件,而是使用 wp_enqueue_style 和 wp_enqueue_script 将它们加载到子主题 functions.php 中

  • Fancybox/Photoswipe 之间的选择是在另一个 javascript 文件中进行的,也在 functions.php 中排队:根据 jQuery(window).width() 的结果;它会在某些元素上触发 Fancybox 或 Photoswipe:

    jQuery(document).ready(function() {
    
        windows_size = jQuery(window).width();
    
        if(  windows_size > 500) {                  // Load Fancybox
    
           jQuery(".brick a").fancybox({
    
           [...]
    
        else {          // Load Photoswipe
    
           jQuery(".brick a").photoSwipe({
    
           [...]
    
  • 我不能使用任何像 is_page(...) 这样的 WP 函数,因为这两个脚本是在同一个页面上触发的

  • 我不知道是否可以使用 Wordpress 在上面的 javascript 中加载 Photoswipe(js 和 css)所需的所有文件

  • 我宁愿不使用用户代理来检测移动设备

我在 Google 和 StackOverflow 上进行了搜索,但找不到任何与 Wordpress 和这种情况特别相关的答案。

感谢您的帮助。

【问题讨论】:

标签: wordpress


【解决方案1】:

前几天我看到了这个,看起来他正在尝试和你做同样的事情——“如何在 WordPress 中使用媒体查询有条件地加载 JavaScript”:

http://blog.logo24.com/2013/07/23/javascript-media-queries-wordpress/

他的解决方案是 JavaScript,而不是 PHP,并带有一些警告。

【讨论】:

    猜你喜欢
    • 2014-06-05
    • 2012-09-09
    • 2018-02-24
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    相关资源
    最近更新 更多