固定ページを一時的に非表示するときには、管理画面で特定の非表示したいページで右側の公開機能で非表示に変更して更新すれば、表ではURLで移動しても404の表示をしてくれますが、投稿のアーカイブではその設定は管理画面上ではない。

これはarchive.php系のファイルを編集する必要がありそうと思い、何か関数があるのか調べてみると、やはりあった。こんな時用の為に用意していたのかな?

wp_redirect( $location, $status );
exit;

上記がWPが用意している関数で、$logacionに絶対URLを指定しなさいとのことで、bloginfoなどの関数を入れればよいのだそう。しかし、これはリダイレクトなわけで404エラーという非公開設定とはちょっと違う。他に調べてみると、別のサイトではPHPそのものにあるheaderを利用する手も紹介されていました。

header('HTTP/1.0 404 Not Found');
include(TEMPLATEPATH.'/404.php');
exit;

こちらはリダイレクトさせず、このページは無いよと知らせるため、ブラウザ上では訪れたURLを表示して404エラーを表示させるわけで、こちらの方が非公開設定と同じ感じになるので今回はこちらを採用。

参考サイト
https://kantaro-cgi.com/blog/wordpress/show-404-page.html