【WordPress】未来の日時の投稿を公開する方法|予約投稿機能を無視

WordPressの投稿や固定ページでは、日時を未来に設定すると「公開」ボタンが「予約投稿」となり、その「予約投稿」を選択すると、指定した日時まで公開はされません。

今回は、その「予約投稿」機能を無視して、投稿で日時を未来に設定した場合でも、公開させる方法となります。

【WordPress】未来の日時の投稿を公開する方法

以下のソースコードは、投稿で日時を未来に設定し「予約投稿」を選択した際に、予約投稿を無視して公開させる例となり、functions.phpに記述します。

function my_wp_insert_post_data( $data ) {
    if ( $data['post_type'] == 'post' && $data['post_status'] == 'future' ){
        $data['post_status'] = 'publish'; 
	}
    return $data;
};
add_filter( 'wp_insert_post_data', 'my_wp_insert_post_data' );

上記例のwp_insert_post_dataフックは、データベースへデータを追加・更新した際に実行するフックとなり、フックのコールバック関数の第1引数は、投稿データの配列となります。

今回は、そのwp_insert_post_dataフックを利用し、投稿タイプがpost(投稿)で、投稿ステータスがfuture(予約投稿)の場合に、投稿ステータスをpublish(公開)に変更しています。

そのことにより、投稿で日時を未来に設定し「予約投稿」を選択した場合でも、投稿を公開させています。

また、投稿ステータスの種類については、以下のリンク先を参考にしてみてください。

参考サイトなど

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はこちらから。

また、コメントは承認制となります。