在Wordpress functions.php中有条件地加载javascript

时间:2013-07-07 16:25:51

标签: wordpress

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

在照片库页面中,单击缩略图图像会触发Fancybox或Photoswipe,具体取决于屏幕大小(如果使用< 500px 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({
    
           [...]
    
  • 我无法使用任何WP函数,例如is_page(...),因为两个脚本都在同一页面上触发

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

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

我在Google和StackOverflow上搜索过但找不到与Wordpress和这种情况有关的任何答案。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

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

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