未来の投稿を予約投稿せずに公開する。
標準の WordPress では、未来日付で投稿すると、その投稿は予約になってしまい、その日時になるまで公開されない。
あるサイトで、未来の日付の投稿でも公開したいという事案が発生したので対応した。
対応方法は・・・
テーマの functions.php に以下のコードを追記する。
1 2 3 4 5 6 7 |
function forced_publish_future_post($data, $postarr) { if ($data['post_status'] == 'future' && $postarr['post_status'] == 'publish') { $data['post_status'] = 'publish'; } return $data; } add_filter('wp_insert_post_data', 'forced_publish_future_post', 10, 2); |
post_status が、予約は ‘future’、公開は ‘publish’ になる。
上のフィルターを追加すると、新規投稿時に、実行される forced_public_future_post で、ステータスが予約だったら公開に書き換える。
これで未来日付でも問題なく公開される。