JQuery代码在包含在unctions.php中时无法运行

时间:2013-10-11 作者:Charlie74

我觉得我肯定错过了一些简单的事情。。。但为了我的生命,我找不到我缺少的东西。

我的“坏习惯”是将jQuery函数直接包含在标题中。php文件(以及其他点)。据我所知,这是不允许的,应该使用wp\\u enqueue函数将函数保存在一个单独的文件中以加载它们(如果我得到的正确的话)。

我的标题中有一个简单的函数。应在文档就绪时启动的php:

<script>
    // Scroll to Top
    jQuery(document).ready(function () {
        // Force element to hidden state when page loads
        jQuery(\'.scroll-to-top\').hide();

        // Check to see if the window is top if not then display button
        jQuery(window).scroll(function () {
            if (jQuery(this).scrollTop() > 200) {
                jQuery(\'.scroll-to-top\').fadeIn();
            } else {
                jQuery(\'.scroll-to-top\').fadeOut();
            }
        });
        //Click event to scroll to top
        jQuery(\'.scroll-to-top\').click(function () {
            jQuery(\'html, body\').animate({ scrollTop: 0 }, 800);
            return false;
        });
    });
</script>
因此,为了“正确”地执行操作,我将代码取出并放在MyScript中。js(当然是删除脚本标记)。我创建了一个函数。特定于我的主题的php文件,我添加了以下代码:

<?php
    function add_my_script() {
        wp_enqueue_script(
            \'myScripts\', // name your script so that you can attach other scripts and de-register, etc.
            get_template_directory_uri() . \'/js/myScripts.js\', // this is the location of your script file
            array(\'jquery\') // this array lists the scripts upon which your script depends
        );
    }

    add_action( \'wp_enqueue_scripts\', \'add_my_script\' );
?>
但是当我加载页面时,脚本就不再工作了。几个月来,它一直以“错误”的方式工作得很好,但我真的希望在我继续向网站添加其他脚本之前,它能正常工作。你有没有想过我错过了什么?我是否需要另一个线路/电话来激活脚本?

2 个回复
SO网友:Milo

使用子主题时,get_template_directory_uri() 返回要交换的父主题的URIget_stylesheet_directory_uri(), 将从子主题目录加载资源。

SO网友:Twifty

如果<script> 标记不在具有指向的完整路径的页面上。js文件,可能是主题中的某个地方调用了remove_all_actions(\'wp_enqueue_scripts\'). 如果是这种情况,您可以尝试手动添加标记

function add_my_script() {
    echo "<script type=\'text/javascript\' src=\'" . get_stylesheet_directory_uri() . "/js/myScripts.js\'></script>";
}    
add_action( \'wp_head\', \'add_my_script\', 20 );
请注意20 是给它一个非常低的优先级,因为你想WP添加它的jquery 在您自己的标记之前编写标记脚本。

结束

相关推荐

如何允许从wp-admin/post.php添加隐藏的自定义字段?

我知道,在自定义字段名称前面使用下划线会隐藏它,使其不显示在前端,例如。_custom_field_name. 根据我的经验,WordPress还阻止在前端添加这样的自定义字段。在我探索地核之前,我想问:有没有“简单”的方法_custom_fields 从wp admin/post添加。php?原因是:我们依赖于隐藏的自定义字段,但在prod中排除生产问题时,能够注入某些隐藏的post meta将非常有用。我不喜欢用手触摸生产数据库。