特定の投稿の最初のリビジョンを取得して日付を取得するとします。
どうやってするか?
post_date
とpost_date_gmt
は、投稿が作成された日付として機能します。スケジュールされた投稿の場合、これは投稿が公開される予定の日付になります。
予定された投稿が追加された日付を決定するための信頼できるネイティブの方法はありません。スケジュールされた投稿の場合、投稿が最初に追加されたときに対応するので、post_modified
またはpost_modified_gmt
の日付を試すことができます。覚えておく必要がありますが、投稿が変更されるとこの日付が変わるため、これは信頼できません。
もう1つの(信頼できない)方法は、リビジョンを使うことです。改訂を有効にしている場合、投稿がスケジュールまたは公開されると、投稿の改訂が保存されます。予定されたボタンがクリックされたときに予定された投稿の後に保存されるその改訂は、予定されたボタンがクリックされた現在の投稿日を保持します。下の写真をチェック
これを行う信頼できる方法が必要な場合は、スケジュールされたボタンがクリックされて投稿をスケジュールしたときの正確な時間を節約するための独自のカスタム関数を作成する必要があります。
私は同じ情報を必要としていて、ちょうど自分で考え出しました。 @dipak_pustiが示唆しているように、postmeta
テーブルから最初の_wp_old_date
を取得するためにカスタムクエリを作成する必要があります。次の文を実行します。
global $wpdb;
$post_id = 1234;
$meta_key = '_wp_old_date';
$post_create_date = $wpdb->get_var( $wpdb->prepare(
"
SELECT MIN($wpdb->postmeta.meta_value) as post_create_date
FROM $wpdb->postmeta
WHERE $wpdb->postmeta.post_id = %d
AND $wpdb->postmeta.meta_key = %s
",
$post_id,
$meta_key
) );
if(is_null($post_create_date)) {
$post_create_date = get_the_date('Y-m-d', $post_id);
}
echo "<p>Post create date is: {$post_create_date}</p>";
注:_wp_old_date
がNULL
(これは公開日が変更されていないことを意味します)の場合は、get_the_date('Y-m-d', $post_id)
の日付を使用できます。
私があなたと同じ種類のケースで立ち往生していたとき、私は日付を表すメタ値を持つメタキー_wp_old_date
を見つけました。
これをグーグルすることで、PostやObjectが変更されたときに古い値を格納するための関数が使われていることがわかりました。
https://wpseek.com/function/wp_check_for_changed_dates/ /
私は知っています、これは非常に遅い答えですが、それは将来他の人を助けるかもしれません。 :)
get_the_date();
を使用して、フィールド "Published on .."のメタボックス "Publish"に定義されている日付を取得します。これは通常、ユーザーが変更しない限り、ユーザーが投稿を作成した日付です。