フロントエンドから wp_insert_post ( Trac )を使用して投稿を送信するときに投稿日を定義するための適切な方法は何ですか?
私のスニペットは今MySQLの時間で公開されています...
if (isset ($_POST['date'])) {
$postdate = $_POST['Y-m-d'];
}
else {
$postdate = $_POST['2011-12-21'];
}
// ADD THE FORM INPUT TO $new_post ARRAY
$new_post = array(
'post_title' => $title,
'post_content' => $description,
'post_date' => $postdate,
'post_status' => 'publish',
'post_parent' => $parent_id,
'post_author' => get_current_user_id(),
);
//SAVE THE POST
$pid = wp_insert_post($new_post);
あなたがpost_dateを追加しない場合、WordPressは自動的に現在の日付と時刻を埋めます。
別の日時を設定するには[ Y-m-d H:i:s ]
が正しい構造です。あなたのコードで以下の例。
$postdate = '2010-02-23 18:57:33';
$new_post = array(
'post_title' => $title,
'post_content' => $description,
'post_date' => $postdate,
'post_status' => 'publish',
'post_parent' => $parent_id,
'post_author' => get_current_user_id(),
);
//SAVE THE POST
$pid = wp_insert_post($new_post);
あなたの日付をWordpress(MySQL DATETIME)フォーマットに変換するには、これを試してください。
$date_string = "Sept 11, 2001"; // or any string like "20110911" or "2011-09-11"
// returns: string(13) "Sept 11, 2001"
$date_stamp = strtotime($date_string);
// returns: int(1000166400)
$postdate = date("Y-m-d H:i:s", $date_stamp);
// returns: string(19) "2001-09-11 00:00:00"
$new_post = array(
// your other arguments
'post_date' => $postdate
);
$pid = wp_insert_post($new_post);
あなたが本当にセクシーになりたいなら、またはもちろんこれをしてください:
'post_date' => date("Y-m-d H:i:s", strtotime("Sept 11, 2001"))
あなたはこのように$_POST['date']
をフォーマットすることはできません... value を$_POST['date']
から$postdate = date( $_POST['date'] )
..のようなものを通して実行する必要があります。ブログ設定のためにget_optionを呼び出す可能性もあります。 Codexのオプションリファレンスを参照してください。
コミュニティのためにここに私の最後の作業コードがあります:
ヘッダ
$year = $_REQUEST['year'];
$month = $_REQUEST['month'];
$day = $_REQUEST['day'];
$postdate = $year . "-" . $month . "-" . $day . " 08:00:00";
$new_post = array(
'post_title' => $title,
'post_content' => $description,
'post_status' => 'publish',
'post_author' => get_current_user_id(),
'post_date' => $postdate
);