0

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

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

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

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

如果我包含这个脚本,那么我可以添加新帖子并使用我的表单 + 按钮,但是编辑帖子页面不会出现,我只会看到一个白屏。

最后我发现我是否将此代码插入到 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>

如您所见,我的代码位于第 11,12 和 13 行以使其正常工作。

4

2 回答 2

0

你可以在你的主题functions.php中尝试这样的事情

函数 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');

于 2013-11-09T00:37:19.913 回答
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');
?>

我希望这有帮助。

于 2013-11-09T00:25:09.327 回答