Wordpress自定义类别页面未加载javascript文件并给出404错误

时间:2013-09-11 13:38:07

标签: javascript wordpress wordpress-theming

我已经从头开始开发一个主题,现在我有一个网站的代码片段,他在这里使用的脚本就像 -

<script>
        head.js(
            { jquery : "js/jquery.min.js" },
            { mousewheel : "js/jquery.mousewheel.js" },
            { mwheelIntent : "js/mwheelIntent.js" },
            { jScrollPane : "js/jquery.jscrollpane.min.js" },
            { history : "js/jquery.history.js" },
            { stringLib : "js/core.string.js" },
            { easing : "js/jquery.easing.1.3.js" },
            { smartresize : "js/jquery.smartresize.js" },
            { page : "js/jquery.page.js" }
        );
</script>

现在,当我在我的类别{slug} .php中尝试此操作时,它会在wordpress / category / {slug} /

文件夹中搜索这些文件

现在我也试过这里`

<script>
        head.js(
            { jquery : "<?php bloginfo('template_url')?>/js/jquery.min.js" },
            { mousewheel : "<?php bloginfo('template_url')?>/js/jquery.mousewheel.js" },
            { mwheelIntent : "<?php bloginfo('template_url')?>/js/mwheelIntent.js" },
            { jScrollPane : "<?php bloginfo('template_url')?>/js/jquery.jscrollpane.min.js" },
            { history : "<?php bloginfo('template_url')?>/js/jquery.history.js" },
            { stringLib : "<?php bloginfo('template_url')?>/js/core.string.js" },
            { easing : "js/jquery.easing.1.3.js" },
            { smartresize : "<?php bloginfo('template_url')?>/js/jquery.smartresize.js" },
            { page : "<?php bloginfo('template_url')?>/js/jquery.page.js" }
        );`
</script>

然后我在firebug中得到404错误但是当我尝试这样的事情时 -

{jquery : "../../wp-content/themes/testing/js/literature"},

它有效,现在我想知道为什么它在文件夹类别而不是我的主题目录中查找这些依赖项,而同时如果我写这些行

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/literature/head.min.js"></script>

在我的脑子部分,我惊讶他们的工作,谁能告诉我这里发生了什么

2 个答案:

答案 0 :(得分:1)

根据您的代码,您使用的是名为head.js的脚本,它允许您向标头添加更多脚本。如果你真的想使用head.js,你必须手动添加该脚本。我不鼓励使用你真正不需要的东西。

将此PHP代码放在functions.php文件中,该文件应位于主题目录中。如果没有,请创建它。这就是您通常在主题中包含脚本的方式。

add_action('wp_enqueue_scripts', 'mytheme_enqueue_scripts');

function mytheme_enqueue_scripts() {
    // jQuery comes with WordPress, no need to include it


    $dir = get_stylesheet_directory_uri() . '/js';

    // Vanilla scripts
    wp_enqueue_scripts('stringLib',     $dir . '/core.string.js');

    // All these guys depend on jQuery, hence the "array('jquery')"
    wp_enqueue_scripts('easing',        $dir . '/jquery.easing.1.3.js',         array('jquery'));
    wp_enqueue_scripts('easing',        $dir . '/jquery.smartresize.js',        array('jquery'));
    wp_enqueue_scripts('easing',        $dir . '/jquery.page.js',               array('jquery'));
    wp_enqueue_scripts('history',       $dir . '/jquery.history.js',            array('jquery'));
    wp_enqueue_scripts('mousewheel',    $dir . '/jquery.mousewheel.js',         array('jquery'));
    wp_enqueue_scripts('mwheelintent',  $dir . '/jquery.easing.1.3.js',         array('jquery'));
    wp_enqueue_scripts('mwheelintent',  $dir . '/mwheelIntent.js',              array('jquery'));
    wp_enqueue_scripts('jscrollpane',   $dir . '/jquery.jscrollpane.min.js',    array('jquery'));

    // This one happens to rely on jScrollPane
    wp_enqueue_scripts('mwheelintent',  $dir . '/mwheelIntent.js',              array('jscrollpane'));
}

PS。不要忘记PHP代码始终以<?php

开头

答案 1 :(得分:0)

在加载category- {slug} .php之前加载wp-blog-header.php?