質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

解決済

WordPressのカスタムフィールドにjQueryUIのdatepickerを使って日付の入力すると更新時に1970/01/01になってしまいます。

gucci_daisuke
gucci_daisuke

総合スコア13

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

1回答

0評価

0クリップ

3201閲覧

投稿2017/05/01 21:56

お世話になります。

WordPressのカスタム投稿タイプ(post_type == schedule)を利用し、イベントスケジュールのページを作りたいのですが、アーカイブページで表示するイベント開催日をカスタムフィールドでdatepickerを使って入力したところ、更新後に1970/01/01になってしまいます。

http://www.webopixel.net/wordpress/343.html#p03
こちらの記事を参考に、投稿ページにあらかじめカスタムフィールドを作ってdatepickerで日付を入れると、元々あるカスタムフィールド欄に指定通りの名前と値が追加されます。

ですが、日付を指定するカスタムフィールドの箇所が1970/01/01になってしまいます。。

イメージ説明

以下はfunction.phpの該当部分です。

php

add_action( 'admin_init', 'schedule_date' ); function schedule_date() { add_meta_box('schedule_date_meta', 'スケジュール日時(一覧ページ掲載用)', 'date_meta_html', 'schedule'); } function date_meta_html () { global $post; $custom = get_post_custom($post->ID); //メタキーがあったら if(!empty($custom)) { $date_start = $custom["date_start"][0]; //日付だけ表示 $sche_date = date("Y.m.d D", strtotime($date_start)); } echo '<input type="hidden" name="date-nonce" id="date-nonce" value="' . wp_create_nonce( 'date-nonce' ) . '" />'; //入力フィールドの表示 ?> <style type="text/css"> #event-meta table th { text-align: left; font-weight: normal; padding-right: 10px; } </style> <div id="sche-meta"> <table> <tr> <th>年月日</th> <td><input name="sche_date" class="sche_date" id="datepicker" value="<?php if(isset ( $sche_date)) echo $sche_date; ?>" size="30" placeholder="日付を選択してください" /></td> </tr> </table> </div> <?php } add_action ('save_post', 'save_date_meta'); function save_date_meta($post_id){ global $post; if ( !wp_verify_nonce( $_POST['date-nonce'], 'date-nonce' )) { return $post_id; } if ( !current_user_can( 'edit_post', $post->ID )) { return $post_id; } $temp_date = $_POST['sche_date']; $date_start = date('Y.m.d D', strtotime($temp_date)); update_post_meta($post->ID, 'date_start', $date_start); } function meta_datepicker() { global $post_type; if( 'schedule' == $post_type || 'works' == $post_type ) { wp_enqueue_style('ui-datepicker', get_bloginfo('template_url') . '/assets/css/jquery-ui.min.css'); wp_enqueue_script('ui-datepicker', get_bloginfo('template_url') . '/assets/js/jquery-ui.min.js'); wp_enqueue_script('datepicker-ja', get_bloginfo('template_url') . '/assets/js/datepicker-ja.js'); wp_enqueue_script('datepicker', get_bloginfo('template_url') . '/assets/js/datepicker.js'); } } add_action( 'admin_print_styles-post.php', 'meta_datepicker', 1000 ); add_action( 'admin_print_styles-post-new.php', 'meta_datepicker', 1000 );

datepicker-ja.js

javascript

/* Japanese initialisation for the jQuery UI date picker plugin. */ /* Written by Kentaro SATO (kentaro@ranvis.com). */ ( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define( [ "../widgets/datepicker" ], factory ); } else { // Browser globals factory( jQuery.datepicker ); } }( function( datepicker ) { datepicker.regional.ja = { closeText: "閉じる", prevText: "&#x3C;前", nextText: "次&#x3E;", currentText: "今日", monthNames: [ "1月","2月","3月","4月","5月","6月", "7月","8月","9月","10月","11月","12月" ], monthNamesShort: [ "1月","2月","3月","4月","5月","6月", "7月","8月","9月","10月","11月","12月" ], dayNames: [ "日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日" ], dayNamesShort: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], dayNamesMin: [ "日","月","火","水","木","金","土" ], weekHeader: "週", dateFormat: "yy/mm/dd", firstDay: 0, isRTL: false, showMonthAfterYear: true, yearSuffix: "年" }; datepicker.setDefaults( datepicker.regional.ja ); return datepicker.regional.ja; } ) );

datepicker.js

javascript

(function($) { $(function() { $('#datepicker').datepicker({ minDate: new Date() }); }); })(jQuery);

お分かりになる方、ご教授のほど宜しくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

yuki84web

2017/05/01 23:04

DBの値は確認しましたか?

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。