我正在嘗試添加一個日期選擇器到wordpress中的自定義元框。如果我入隊,像這樣麻煩添加jQuery UI到Wordpress管理頁面
// add stylesheets for date picker
add_action('admin_print_styles', 'add_datepicker_styles');
function add_datepicker_styles() {
global $post;
$styleFile = get_bloginfo("template_url").'/refactored-datepicker/css/ui-lightness/jquery-ui-1.8.17.custom.css';
if(file_exists($styleFile) && $post->post_type == 'show') {
wp_enqueue_style("datepicker-css", $styleFile);
}
}
// add javascript for date picker
add_action('admin_print_scripts', 'add_datepicker_js');
function add_datepicker_js() {
global $post;
$jsFile = get_bloginfo("template_url").'/refactored-datepicker/js/jquery-ui-1.8.17.custom.min.js';
if(file_exists($jsFile) && $post->post_type == 'show') {
wp_enqueue_script("datepicker-js", $jsFile);
}
}
// add date picker init
add_action('admin_head', 'add_datepicker_init');
function add_datepicker_init() {
global $post;
if($post->post_type == 'show') {
echo "<script type='text/javascript'>jQuery(document).ready(function() { jQuery('#show_date').datepicker(); });</script>";
}
}
腳本,我得到一個錯誤,jQuery的( '#SHOW_DATE')日期選擇器()。不是一個功能。當我檢查處理後的源代碼時,我發現默認情況下會加載jQuery,但根本不加載樣式和jQuery UI腳本。附加到admin_head鉤子的代碼加載得很好,如果我在這個函數中迴應腳本和樣式,它將以我希望的方式工作。
// add date picker init
add_action('admin_head', 'add_datepicker_init');
function add_datepicker_init() {
global $post;
if($post->post_type == 'show') {
echo "<link rel='stylesheet' type='text/css' href='".get_bloginfo("template_url").'/refactored-datepicker/css/ui-lightness/jquery-ui-1.8.17.custom.css'."' />";
echo "<script type='text/javascript' src='".get_bloginfo('template_url').'/refactored-datepicker/js/jquery-ui-1.8.17.custom.min.js'."'></script>";
echo "<script type='text/javascript'>jQuery(document).ready(function() { jQuery('#show_date').datepicker(); });</script>";
}
}
因此,它是與wp_enqueue_style /腳本()函數或與ADD_ACTION鉤出了問題?我是wordpress的新手,所以我不確定如何解決這個問題。我已經做了谷歌搜索,我去的代碼看起來像我的。此外,如果你想知道文件的路徑是正確的。
任何人都可以想到解決我的問題?只是迴應劇本和風格,還是應該讓他們入選?
謝謝!
編輯:
file_exists($ jsFile)返回false。如果我刪除條件檢查文件的代碼工作..但爲什麼?你還能怎樣檢查一個使用以http://開頭的URL而不是本地文件路徑的文件?
仍然無法使用。我試着fopen沒有成功,get_theme_root()從我的共享主機的根目錄返回文件路徑,而不是我的域指針的根目錄。 – 2012-01-11 23:15:24
'get_template_directory()'而不是'get_theme_root()'怎麼辦?我已經嘗試了兩種解決方案(file_exists和fopen)安裝WordPress,他們似乎正在爲我工作。 – chrisn 2012-01-12 02:16:21