WordPressで未來の日付の記事を公開狀態にすることってできないの?

「functions.php」にコードを記述して狀態を上書きしてやれば可能だ。

WordPressでは、記事の公開日付を未來に設定することで、指定の日付になったときに自動的に公開を行う「予約投稿」を行える。しかし、未來の日付を指定すると強制的に予約投稿になってしまうので、未來の日付で記事を公開することはできない。
トップページの新著記事一覧の先頭にオススメの記事を表示させ続けたい場合、未來の日付を指定すれば手軽に実現できそうな気がするが、この仕様のために実現できなくなっている。
しかし、「functions.php」にフィルタ処理を記述して、保存される直前のデータを上書きしてやれば、未來の日付で記事を公開することも可能だ。予約投稿が使えなくなってしまうと不便なので、一旦公開狀態にしてから未來の日付に変更した場合に公開狀態のままになるという挙動にしておくといいだろう。


001

「公開日時」に未來の日付を指定すると、「公開」ボタンが「予約投稿」ボタンになり、ボタンを押すと「ステータス」が「予約済み」の狀態で保存される。
公開済みの記事の日付を未來にしようとした場合も、未公開の狀態になってしまうので注意が必要だ。


function publicfuturepost($data,$posted){
	if($posted['original_post_status']=='publish' && $data['post_status']=='future'){
		$data['post_status']='publish';
	}
	return($data);
}
add_filter('wp_insert_post_data','publicfuturepost',10,2);

未來の日付で記事を公開できるようにしたければ、テーマファイルディレクトリにある「functions.php」に上記のようなコードを追加しよう。


002

このフィルタを導入した狀態で、一旦公開狀態にした記事の公開日時を未來の日付にして「予約投稿」ボタンを押すと、公開済みの狀態のままで未來の公開日時を設定できるぞ。
下書きの狀態からなら通常通りに予約投稿が可能だ。一度公開した記事を予約投稿したい場合は、一旦「ステータス」を「下書き」にしてから再度予約投稿しよう。

2016年04月22日 19時03分
©教えて君.net All Rights Reserved.
成年片黄网站色大全免费