【问题标题】:WordPress Problem with wp_enqueue_scriptwp_enqueue_script 的 WordPress 问题
【发布时间】:2010-03-25 08:53:01
【问题描述】:

我尝试使用 wp_enqueue_script 加载我的 javascript,这是我的代码:

<?php wp_enqueue_script('slider','/wp-content/themes/less/js/slider.js',array('jquery'),'1.0'); ?>

它不起作用,当我查看源代码时,它变成了:

<script type='text/javascript' src='http://localhost/wp/wp-content/themes/less/js/slider.js?ver=2.9.2'></script> 

?ver=2.9.2 自动添加到末尾,我猜是这个原因,我该如何解决。

【问题讨论】:

  • @Zack 在末尾添加?ver=2.9.2 ?
  • ?ver=2.9.2 自动添加到末尾
  • @c0mrade,我尝试将 ?ver=2.9.2, 添加到链接中,使其成为:/wp-content/themes/less/js/slider.js?ver=2.9.2 它工作,结果它变成:
  • 感谢 c0mrade,希望您能告诉我是什么原因造成的
  • WordPress 似乎附加了已安装的 WordPress 版本。我也试过这个,当我的参数不符合语法时,今天的 WordPress 版本 (?ver=3.3.2) 被附加到 uri。

标签: javascript wordpress


【解决方案1】:

Wordpress 的文档在这方面的记录很差。

将倒数第二个参数中的false 更改为null 以删除?ver=2.9.2

【讨论】:

    【解决方案2】:

    要删除版本参数,您需要一个额外的过滤器。这就是我在没有查询字符串的情况下使用 Google 的 jQuery 的方式:

    <?php
    // Use the latest jQuery version from Google
    wp_deregister_script('jquery');
    wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false, false);
    wp_enqueue_script('jquery');
    
    add_filter('script_loader_src', 'toscho_script_loader_filter');
    
    function toscho_script_loader_filter($src)
    {
        if ( FALSE === strpos($src, 'http://ajax.googleapis.com/') )
        {
            return $src;
        }
        $new_src = explode('?', $src);
    
        return $new_src[0];
    }
    ?>
    

    您甚至可以使用最后一个过滤器来添加您自己的查询变量。

    通常查询字符串不应影响您的脚本。我删除它只是为了增加用户可以使用此文件的缓存版本的可能性。

    【讨论】:

    • toscho,如何使您的脚本适应采用自定义“jquery include”函数的 add_action 函数?自定义函数只是做了你在前两行中所做的事情,最后没有 wp_enqueue_script。
    • @ilia,对不起,我真的不明白你的问题。也许你应该打开一个new question 并显示你正在处理的代码。
    • 是的,我感觉这不是很清楚,但我希望避免提出新问题,因为它实际上是一个非常相似的情况,但又足够不同,以至于我仍然遇到麻烦用它。无论如何,我在这里为它创建了一个问题stackoverflow.com/questions/5256025/…
    【解决方案3】:

    如果您使用的是 Wordpress 3.0,您可以使用 null 作为第四个参数。这将有效地删除版本。

    【讨论】:

      【解决方案4】:

      将您的代码更改为:

      <?php wp_enqueue_script('slider','/wp-content/themes/less/js/slider.js',array('jquery'),null); ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-30
        • 2021-12-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多