我正在尝试调用插件管理页面上的以下脚本:
<?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;
}
但很明显,这个脚本运行在我的插件页面上,而不是我想要的。既然它们都是管理页面,那么我如何指定哪个脚本去哪里呢?
最合适的回答,由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变量。
我希望你觉得我的回答有用。