WordPressで日付が未来の記事を公開する方法(プラグインなし)

WordPressで日付が未来の記事を公開する方法(プラグインなし)

今回は日付が未来の記事をWordPressで公開状態にする方法です。

通常WordPressでは、記事の公開日を未来の日付にすると「予約投稿」となり、下書き状態で保存され、設定した日付になると公開されます。

しかし、イベント開催など先のスケジュールとして早めに公開したい場合もあると思います。

そんな時に、プラグインなしで未来の記事を公開する方法をご紹介します。

functions.php にコードを追加

下記が予約投稿を無効にするコードになります。

//予約投稿を無効にする
add_action('save_post', 'futuretopublish', 99);
add_action('edit_post', 'futuretopublish', 99);
function futuretopublish()
{
	global $wpdb;
	$sql = 'UPDATE `' . $wpdb->prefix . 'posts` ';
	$sql .= 'SET post_status = "publish" ';
	$sql .= 'WHERE post_status = "future"';
	$wpdb->get_results($sql);
}

使用中のテーマの、functions.php にこのコードを追加してください。

これだけで予約投稿の機能が無効化され、公開日の日付が未来の記事でも公開できるようになります。

ちなみに、特定のカスタム投稿のみ無効化したい場合は、下記のコードで無効化できます。

//予約投稿を無効にする(特定のカスタム投稿のみ無効化)
function stop_post_status_future($data, $postarr)
{
	if (($data['post_type'] == 'カスタム投稿名' && $data['post_status'] == 'future') && $postarr['post_status'] == 'publish') :
		$data['post_status'] = 'publish';
	endif;
	return $data;
};
add_filter('wp_insert_post_data', 'stop_post_status_future', 10, 2);

カスタム投稿名の部分に、設定したいカスタム投稿スラッグを入れてください。

以上、日付が未来の記事をWordPressで公開状態にする方法でした。

「参考になったよ!」という方はSNSなどでシェアしていただけると嬉しいです。

WORDPRESSカテゴリの最新記事