簡単に編集できる WordPress ページ領域に常駐する「きれいな」カスタム 404 ページをすばやく作成するために使用できる単純なプラグインを作成しました。最近、プラグインが適切な 404 not found ヘッダーを送信していないことを発見しましたが、Google ウェブマスター ツールからソフト 404 が増加したことが通知されました。以下のコードでわかるように、最初に 404 Not found ヘッダーを送信し、次に 301 パーマネント リダイレクトを呼び出します。
概念的には、これはうまくいくはずだと思います (そして、これが他の 404 プラグインで使用されているのを見てきました) が、そうではありません。404 ヘッダーを表示する唯一の方法は、場所ヘッダーの後にヘッダーを送信することですが、空白のページが表示されるため、そのような目的は無効になります。WordPress プラグインでこれを機能させる方法がよくわかりません。WordPress のページ構造内でこれを機能させる方法を確認したいと思います。
関数は次のとおりです。
if ($wp_query->is_404) {
$page_title = $this->options['404_page_title'];
$redirect_404_url = esc_url(get_permalink(get_page_by_title($page_title)));
header("HTTP/1.0 404 Not Found");
header("HTTP/1.1 301 Moved Permanently");
header("Location:" . $redirect_404_url);
die;
}