DatePickerの日本語化 (WordPress カスタムフィールドテンプレート プラグイン)
- 投稿日 : 2012-03-17, 16:18
- 最終更新日時 : 2012-03-19 04:04:32(履歴)
- タグ(WordPress / jQuery)
- カテゴリ(WordPress)
- 記し人(luvsic)[PDF]
- 閲覧数(9455)
jQuery.UI の jquery.ui.datepicker-ja.js を利用すれば大丈夫でしょ、とおもいきや $.datepicker.regional['ja'] が使えないという…。jQuery.UIにバンドルされているDatePickerではないかもしれないので、妥当なのかもしれない。で、どう日本語化するか。
シンプルに考えると、January、February とかが日本語の月名表示できれば要件を満たせる。カスタムフィールドテンプレートのファイル群を探すと、date.js の中に記述があった。
Date.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
ここを上書きすればok。
custom-field-template.php
WordPress のプラグインをアップデートすると消えちゃうんで、とりあえずjsだけは外部ファイル化することにしました。custom-field-template.php の556行目あたりに、下記の jquery.datepicker-ja.js の行を足しこみます。jquery.datePicker.js のあとに読み込まないとダメかも。
if ( !defined('WP_PLUGIN_DIR') )
$plugin_dir = str_replace( ABSPATH, '', dirname(__FILE__) );
else
$plugin_dir = dirname( plugin_basename(__FILE__) );
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'jquery-form' );
wp_enqueue_script( 'date', '/' . PLUGINDIR . '/' . $plugin_dir . '/js/date.js', array('jquery') );
wp_enqueue_script( 'bgiframe', '/' . PLUGINDIR . '/' . $plugin_dir . '/js/jquery.bgiframe.js', array('jquery') ) ;
wp_enqueue_script( 'datePicker', '/' . PLUGINDIR . '/' . $plugin_dir . '/js/jquery.datePicker.js', array('jquery') );
wp_enqueue_script( 'datePickerLung', '/' . PLUGINDIR . '/' . $plugin_dir . '/js/jquery.datepicker-ja.js', array('jquery') );
wp_enqueue_script( 'textarearesizer', '/' . PLUGINDIR . '/' . $plugin_dir . '/js/jquery.textarearesizer.js', array('jquery') );
if( strstr($_SERVER['REQUEST_URI'], 'wp-admin/post-new.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/post.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/page-new.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/page.php') || (is_object($post) && $post->post_type=='page') ) :
wp_enqueue_script('editor');
wp_enqueue_script('quicktags');
endif;
※プラグインの直接編集ですので、プラグインアップデートすると毎度消えちゃいます。
jquery.datepicker-ja.js
次の内容を jquery.datepicker-ja.js に記述して、プラグインのjsフォルダに放り込みます。jQuery(function(){
Date.monthNames = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'];
});
[追記] プラグインをアップデートするとフォルダごと初期化される
WordPressの管理画面からプラグインをアップデートすると、フォルダごと初期化されるみたい。追加したファイルも削除されるため、カスタムフィールドテンプレートをアップデートしたら見事に jquery.datepicker-ja.js も消えてしまう事態に。仕方ないので functions.php に記述して対応することにした、要はJavaScriptを上書きできればいい。
/*
* カスタムフィールドテンプレートでDatePickerの月表示を日本語化
* 2012-3-17 (+)Luvsic
* https://luvsic.net/item/158
*
*/
function admin_js() {
echo '<script type="text/javascript">
jQuery(function(){
Date.monthNames = [\'1月\',\'2月\',\'3月\',\'4月\',\'5月\',\'6月\',\'7月\',\'8月\',\'9月\',\'10月\',\'11月\',\'12月\'];
});</script>';
}
add_action('admin_head', 'admin_js');
管理画面の全ページでこのコードが出ちゃうけど、プラグインの機能を上書きする記述方法がわからないので暫定的。
No comments yet