WordPressの予約投稿で未来公開を解除してすぐに公開にする方法

5918 Views
WordPress
WordPressの予約投稿で未来公開を解除してすぐに公開にする方法

WordPressの投稿やカスタム投稿を使っているとケースによっては公開日を未来に設定したい時があると思います。

未来に設定した記事を設定した時刻になった時に公開されればいいよーってケースの時は問題ないのですが、未来の日時に設定するけど今すぐ公開したーいってなった時はちょいと面倒です。

今回は参加サイトで上記の問題が起きた時、参加サイトではないけど特定のカスタム投稿だけ未来公開をキャンセルしたい時の解決方法をご紹介したいと思います。

SNSでシェア♪

スポンサーリンク

目次

参加サイトの場合

参加サイトの場合はプラグインを使って解決させるのが良いと思います。

追加するプラグインは「No Future Posts」です。
プラグインページはこちら

手順としては、
1. 管理画面にログイン
2. 「参加サイト」→「サイトネットワーク管理者」へ移動
3. 「プラグイン」→「新規追加」へ移動
4. No Future Postsを検索してインストール
※特定の参加サイトのみプラグインを有効化にするのでここでは有効化は行いません

未来公開を解除したい参加サイトへ移動してプラグインから「No Future Posts」を有効化します。
これで参加サイトの場合は解決できると思います。

 

 

特定のカスタム投稿のみ解除したい場合

特定のカスタム投稿(通常の投稿)のみ解除したい場合はfunctions.phpへ記述を増やしてあげるのが良いと思います。

functions.phpへコードをコピー後したら未来公開を解除させたい記事を管理画面より更新してあげてください。

 

全ての投稿・固定ページ・カスタム投稿で未来公開を解除する場合

function futureToPublish() {
	global $wpdb;
	$sql = "
		UPDATE `{$wpdb->prefix}posts`
		SET post_status = 'publish'
		WHERE post_status = 'future'
	";
	$wpdb->get_results($sql);
}
add_action('save_post', 'futureToPublish', 99);	//予約投稿機能を無効化して未来の記事を表示させる
add_action('edit_post', 'futureToPublish', 99);	//予約投稿機能を無効化して未来の記事を表示させる

 

カスタム投稿「news」のみ未来公開を解除する場合

function futureToPublish() {
	global $wpdb;
	$sql = "
		UPDATE `{$wpdb->prefix}posts`
		SET post_status = 'publish'
		WHERE post_status = 'future'
		AND post_type = 'news'
	";
	$wpdb->get_results($sql);
}
add_action('save_post', 'futureToPublish', 99);	//予約投稿機能を無効化して未来の記事を表示させる
add_action('edit_post', 'futureToPublish', 99);	//予約投稿機能を無効化して未来の記事を表示させる

 

カスタム投稿「news」「blog」の複数の未来公開を解除する場合

function futureToPublish() {
	global $wpdb;
	$sql = "
		UPDATE `{$wpdb->prefix}posts`
		SET post_status = 'publish'
		WHERE post_status = 'future'
		AND (post_type = 'news' OR post_type = 'blog')
	";
	$wpdb->get_results($sql);
}
add_action('save_post', 'futureToPublish', 99);	//予約投稿機能を無効化して未来の記事を表示させる
add_action('edit_post', 'futureToPublish', 99);	//予約投稿機能を無効化して未来の記事を表示させる

 

以上!

SNSでシェア♪

スポンサーリンク

関連記事