在插件页面上调用jQuery函数

时间:2013-07-02 作者:mantis

我正在尝试调用插件管理页面上的以下脚本:

<?php
function add_match_attendance_scripts() {

$output = \'<script type="text/javascript">

            jQuery(function () {
$("#seatt_start").datepicker({dateFormat: "dd-mm-yy"});
$("#seatt_expire").datepicker({
    dateFormat: "dd-mm-yy",
    firstDay: 1,
    onSelect: function (prev_date) {
        prev = prev_date.split("-");
        var date = new Date(prev[2], prev[1] - 1, prev[0]);
        var d = date.getDate();
        var m = date.getMonth();
        var y = date.getFullYear();
        var new_date = new Date(y, m, d - 7);
        $("#seatt_start").removeAttr("disabled").datepicker("setDate", new_date);
     }
   });
});

</script>\';

                echo $output;
        } 
            add_action(\'admin_head\',\'add_match_attendance_scripts\');
?>
我已经排队了jquery-ui-datepicker 对于所有管理页面,它使用类似的功能在所有管理页面上正常工作:

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

function add_report_custom_scripts() {
global $report_custom_meta_fields, $post;

$output = \'<script type="text/javascript">
            jQuery(function() {\';

foreach ($report_custom_meta_fields as $field) { // loop through the fields looking for certain types
    // date
    if($field[\'type\'] == \'date\')
        $output .= \'jQuery(".datepicker").datepicker({ dateFormat: "dd-mm-yy", firstDay: 1 });\';

}

$output .= \'});
    </script>\';

echo $output;
}
但很明显,这个脚本运行在我的插件页面上,而不是我想要的。既然它们都是管理页面,那么我如何指定哪个脚本去哪里呢?

1 个回复
最合适的回答,由SO网友:Md Toufiqul Islam 整理而成

您可以查看此处的解释以包括任何脚本here

function my_enqueue($hook) {
    if( \'edit.php\' != $hook )
        return;
    wp_enqueue_script( \'my_custom_script\', plugins_url(\'/myscript.js\', __FILE__) );
}
add_action( \'admin_enqueue_scripts\', \'my_enqueue\' );
以上代码将在您的所有管理页面中添加脚本。

为了识别页面,您可以遵循以下步骤:

if (isset($_GET[\'page\']) && $_GET[\'page\'] == \'wp-accordion\') {
    // do all of your add_action() hooks here
}
这里的“page”是您在添加菜单时在创建的插件中定义的get变量。

我希望你觉得我的回答有用。

结束

相关推荐

如何在WordPress上正确包含jQuery-UI效果

我一直试图在我的wordpress主题中包含jquery ui效果(更具体地说是抖动效果)。到目前为止,我只能包含jQuery脚本,但我真的不知道在哪里放置ui脚本以及如何将它们排队。这是我的密码。这显然行不通: <?php wp_enqueue_script(\"jquery\"); ?> <?php wp_enqueue_script(\"jquery-ui-core\"); ?> <?php wp_head(); ?> <lin