WordPress - 修改admin-header.php或使用functions.php将jQuery脚本插入标头?

时间:2013-11-09 00:12:48

标签: javascript php jquery wordpress

我正在开发一个带有(jQuery)onClick按钮的表单,这样我就可以将其他文档的结果直接导入WP自定义字段。

为此,我必须将此脚本包含在我的表单中:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>

如果我不包含此脚本,那么我的表格将不起作用:(

如果我包含这个脚本,那么我可以添加新的POST并使用我的Form + Button但是编辑POST页面不会出现,我只看到一个白色的屏幕。

最后,我想出是否将此CODE插入admin-header.php中的第59行:

<?php if ( is_admin() && $parent_file == 'edit.php') { ?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<?php } ?>

然后一切都会按我的要求100%运作:D

我认为WP默认使用/包含此脚本但是我不知道这是不正确的。至少不适用于WP-Backend(帖子页面)。

问题是:我不想编辑WP CORE文件,所以我的问题是如何使用functions.php而不是编辑admin-header.php获得相同的结果?

只是为了向您展示admin-header从LINE 50到LINE 73的样子:

<title><?php echo $admin_title; ?></title>
<?php

wp_enqueue_style( 'colors' );
wp_enqueue_style( 'ie' );
wp_enqueue_script('utils');

$admin_body_class = preg_replace('/[^a-z0-9_-]+/i', '-', $hook_suffix);
?>

<?php if ( is_admin() && $parent_file == 'edit.php') { ?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<?php } ?>

<script type="text/javascript">
addLoadEvent = function(func){if(typeof jQuery!="undefined")jQuery(document).ready(func);else if(typeof wpOnload!='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
var ajaxurl = '<?php echo admin_url( 'admin-ajax.php', 'relative' ); ?>',
    pagenow = '<?php echo $current_screen->id; ?>',
    typenow = '<?php echo $current_screen->post_type; ?>',
    adminpage = '<?php echo $admin_body_class; ?>',
    thousandsSeparator = '<?php echo addslashes( $wp_locale->number_format['thousands_sep'] ); ?>',
    decimalPoint = '<?php echo addslashes( $wp_locale->number_format['decimal_point'] ); ?>',
    isRtl = <?php echo (int) is_rtl(); ?>;
</script>

正如你可以看到我的CODE在第11,12和13行,以使它工作。

2 个答案:

答案 0 :(得分:0)

尝试将此添加到您的functions.php:

<?php
function add_jquery_data() {

    global $parent_file;

    if ( isset( $_GET['action'] ) && $_GET['action'] == 'edit' && isset( $_GET['post'] ) && $parent_file == 'edit.php') {
        echo "<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>";
    }
}

add_filter('admin_head', 'add_jquery_data');
?>

我希望这会有所帮助。

答案 1 :(得分:0)

你可以在主题functions.php

中尝试这样的事情

function admin_add_script(){     wp_enqueue_script('jquery_script','http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js',array(),null); }

add_action('admin_head-edit.php','admin_add_script');