如何将jQuery放入管理员队列中?为什么它还不在那里?

时间:2012-02-09 作者:Scott B

为什么下面的jquery没有启动?每次都会转到“else”。

if ( is_admin() && $pagenow == \'theme-install.php\' && $_GET[\'tab\']=="upload"){
    add_action(\'admin_print_scripts\', \'theme_upgrade_alert\');
    function theme_upgrade_alert(){
        wp_enqueue_script(\'jquery\');
        echo \'
        <script type="text/javascript">
        if(typeof jQuery!="undefined"){
            jQuery.noConflict();
            //jQuery(document).ready(function(){
                jQuery(".install-help").hide();
            //});
        }
        else
        {
            alert("If you are attempting to upgrade the current theme, you must do it via theme options.");
        }
        </script>\';
        }
}

3 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

首先,检查语法错误。语法突出显示似乎表明您有语法错误。

第二,不要把你的add_action() 条件内部调用;相反,请将回调函数内容包装在条件中,例如:

<?php
function theme_upgrade_alernt() {
    if ( is_admin() && $pagenow == \'theme-install.php\' && $_GET[\'tab\']=="upload"){
        // CODE GOES HERE
    } else {
        // ELSE CODE GOES HERE
    }
}
add_action(\'admin_print_scripts\', \'theme_upgrade_alert\');
?>
我还建议您将脚本排队admin_enqueue_scripts, 而不是admin_print_scripts.

SO网友:helgatheviking

jquery总是加载在admin中。

您可以在源代码中看到它:

<script type=\'text/javascript\' src=\'http://localhost/multi/wp-admin/load-scripts.php?c=1&amp;load=jquery,utils&amp;ver=3.4-alpha-19704\'></script>
此外,还需要将条件逻辑放入函数中。也许你可以用

admin\\u print\\u脚本-(page\\u挂钩)

而不是admin\\u print\\u脚本,因此它只会在该页面上启动。

SO网友:Otto

您正在将jQuery排队,但只是回显您的脚本。在页面上运行脚本时,jQuery尚未加载。您已将其排队,但尚未等待该排队导致对页面输出执行操作。

将脚本输出下移到页面的后面(如页脚中),或将其打包为jQuery(文档)。ready()包装,以便在页面完成呈现后运行。

结束

相关推荐

JQuery树视图和wp_list_ages

我想用jQuery TreeView 在wp\\u list\\u页面上编写脚本,以获得良好的可折叠树效果。脚本要求我向列表元素添加一些类,例如:<ul id=\"red\" class=\"treeview-red\"> 所以我试着把这个放在我的模板中:首先,通过wp\\u enqueue\\u script()在我的模板页面上加载脚本wp_enqueue_script(\"av_jquery_tree\"); get_header(); 其中,插件中定义了“av