今回は日付が未来の記事を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などでシェアしていただけると嬉しいです。