将jQuery应用于WordPress管理编辑.php

时间:2015-11-10 作者:Robert Fitzpatrick

我们使用Woocommerce插件的最新版本WordPress。我正在寻找将jquery应用于自定义帖子类型(如WC)的最佳方法。我已经有很多Woocommerce的钩子,所以现在我已经将一些jquery添加到了我之前添加到编辑中的元框中。php页面。例如,我使用jquery单击地址按钮来显示所有地址字段,并在加载页面时对非管理员用户隐藏退款按钮。我确信一定有一个更好的应用jquery,就像我现在在下面所做的那样?

add_action( \'add_meta_boxes\', \'my_add_meta_boxes\' );
function my_add_meta_boxes(){
add_meta_box(
    \'woocommerce-order-my-custom\',
    __( \'My Meta Box\' ),
    \'order_my_custom\',
    \'shop_order\',
    \'side\',
    \'default\'
);
}
// Add fields to the metabox
function order_my_custom( $post ){
//<code omitted that places fields in meta box>
?>
<script type="text/javascript">
    jQuery(document).ready(function ($) {
        $(".edit_address").click();
        $(".add-line-item").click();
    });
</script>
<?php
}
我已经使用admin\\u enqueue\\u脚本添加了我自己的常用jquery函数,但是,将您自己的jquery添加到特定帖子类型的最佳方法是什么?

2 个回复
最合适的回答,由SO网友:Robert Fitzpatrick 整理而成

前面的答案很适合我上面使用这个钩子的例子:

add_action( \'admin_head\', \'woocommerce_admin_init\' );
function woocommerce_admin_init() {
    $screen = get_current_screen();
    if ( $screen->post_type == "shop_order" ) {
    ?>
    <script type="text/javascript">
        jQuery(document).ready(function ($) {
            $(".edit_address").click();
            $(".add-line-item").click();
        });
    </script>
    <?php
    }
}

SO网友:Dan Wist

您可以使用get\\u current\\u screen()函数。。。它返回一个对象,其中包含有关您在wp admin中查看的屏幕的许多有用信息。

出于您的目的,您需要该对象的post\\u type属性,该属性将返回当前管理屏幕正在使用的post类型。

<?
$screen = get_current_screen();
if ( $screen->post_type == "ENTERYOURPOSTTYPE" ) {
?>
    <script>
        JAVASCRIPT HERE
    </script>

<?
}
?>
在您的特定示例中,您需要在我指示的位置添加javascript,然后将该函数附加到admin\\u head挂钩。

add_action( \'admin_head\', \'woocommerce_admin_init\' );

function woocommerce_admin_init() {

    $screen = get_current_screen();

    if ( $screen->post_type == "shop_order" ) {
    ?>

        <script type="text/javascript">
            jQuery(document).ready(function ($) {
                $(".edit_address").click();
                $(".add-line-item").click();
            });
        </script>

    <?php
    }

}
参考号:http://codex.wordpress.org/Function_Reference/get_current_screen