如果文件路径正确,则不会在页眉中打印脚本

时间:2011-07-26 作者:Travis Northcutt

我正在处理一个相当粗糙的实现header.php 有以下行:include_once "tracking.php";. 在…内tracking.php, 有以下几行:

<script type="text/javascript" src="/wp-content/themes/themename/js/jquery-1.3.2.min.js"></script>
  <script type="text/javascript" src="/wp-content/themes/themename/js/jquery.cookie.js"></script>
然而,只要有通向那些的路。js文件是正确的,它们不会打印在页面的头部。如果我输入了一个拼写错误,因此路径不正确,那么它们确实会被打印出来!

我意识到这不是包含这些文件的最佳方式。但是,如果使用的路径正确,是否有人知道为什么不打印它们?

4 个回复
SO网友:kaiser

使用如何locate_template() 用于包含和wp_enqueue_script() 对于脚本?还有content_url() 目标/wp内容/。

还有:您是如何检查的?源代码?萤火虫?尝试在FF中打开源代码,然后单击链接。如果你得到一个“找不到文件”,你知道它是关于什么的,否则应该加载它。事实上,它确实没有“打印”到屏幕上,这是我以前从未见过的(以你描述的方式)。最好的解决方案是我的A的第一段:切换包含方法并停止担忧:)

SO网友:supajb

尝试

get_template_part(\'tracking\');
作为包含该文件而不是直接包含的方式。

SO网友:Mario

更改路径如何get_template_directory_uri() 像这样:

<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/jquery-1.3.2.min.js"></script>
您也可以使用TEMPLATEPATH 获取路径,而不是uri。但无论如何,为什么不直接在标题中包含这些行呢?

UPDATE

如果您喜欢使用wp_enqueue_script 你必须记住把它挂在一个动作上tracking.php 如下所示:

function register_scripts() {
    wp_enqueue_script(\'jquery\');
    wp_register_script(\'jquerycookie\', get_template_directory_uri() . \'/js/jquery-1.3.2.min.js\', array(\'jquery\'));
    wp_enqueue_script(\'jquerycookie\');
}
add_action(\'wp_enqueue_scripts\', \'register_scripts\');
将注册新脚本(/js/jquery.cookie.js) 并将其与其他脚本一起打印。我不确定是否真的有必要包括jQuery,因为它应该已经包括在内了,只是为了确保您可以在函数的开头添加以下内容:

wp_deregister_script( \'jquery\' );
wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js\');
正如我所说,没有必要,因为默认情况下应该包括jQuery,但谁知道呢。

SO网友:chrisjlee

wp_enqueue_script() 可以处理即时包含javascript以及检查依赖性的能力。

一个简单的php函数:<?php wp_enqueue_script(\'jQuery\') ?> 在您的tracker.php 文件(或header.php) 将立即加载jquery。

然后是你的另一个脚本<?php wp_enqueue_script(\'jquery_cookie\', TEMPLATEPATH. \'js/jquery.cookie.js\', \'jquery\')

最后一起:

    <?php 
    function mysite_init() {
        if (!is_admin()) { // only fire this on non-admin pages
        wp_enqueue_script(\'jquery\');
        wp_enqueue_script(\'jquery_cookie\', TEMPLATEPATH. \'js/jquery.cookie.js\', \'jquery\'); 
}
    }
    // Add your hook to fix issue #11526 http://core.trac.wordpress.org/ticket/11526
    add_action (\'init\', \'mysite_init\');
    ?>

结束

相关推荐

在WordPress中从javascript文件调用php文件

我有一个用javascript编写的简单弹出表单代码。它在js/script中。主题文件夹中的js文件夹。我使用jquery ajax方法与php文件通信,以将数据存储在db中。php文件位于主题文件夹中。此外,我还想在该php文件中使用wordpress函数。弹出窗口和窗体的显示效果良好。但当我提交它时,我得到了404错误。我对如何告诉wordpress包含这个php文件感到困惑。谢谢EDIT: I could make the jquery code work by giving the full U