WordPressで意図的に特定のページを404エラーにしたい。

特定のページをちゃんと404で表示したい。

事情により、WordPressが用意する一部ページを閉じたい場合があります。 単に該当のテンプレートファイルに exit; 書いてもいいのでしょうけれど、それだとシンプルすぎて不親切ですよね。(真っ白だったり、「Error」とだけ表示されたり。)

404ページのテンプレート 404.php があるんだから、使いましょう。そしてちゃんとステータスコード 404 を返しましょう。

方法

アーカイブページをクローズしたい場合は archive.php、記事詳細ページをクローズしたい場合は single.php など、ご希望のテンプレートファイルの冒頭に以下のコードを追記してください。 また、特定の記事のみクローズしたい場合などは if 文などでURLや記事番号で切り分けるといいでしょう。 functions.php に書いて関数化してしまっても便利かもしれませんね。

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

参考にさせていただいたページ