[WordPress]特定のページへアクセスが来たらステータス404を返す

  • 更新日:
  • 公開日:

特定のページ(例えば固定ページや投稿記事など)へアクセスが来た場合にステータス404を返すコードスニペットです。(404ページが表示されるようになります)

ステータス404を返すコード

WordPressにはHTTPステータスを設定するstatus_header()関数があるのでこちらを使います。以下のソースコードをfunctions.phpに記述します。

//特定のページでステータス404を返す
function status404() {
    if ( is_page() ) {
        //固定ページだった場合
        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
    }
}
add_action( 'template_redirect', 'status404' );

これは固定ページだった場合(is_page())です。6行目のif文でリダイレクトさせたいページの条件分岐を行っています。

例えば特定の固定ページや単一記事ページで404を返すソースコードは下記です。

//特定のページでステータス404を返す
function status404() {
    if ( is_archive() ) {
        //アーカイブページだった場合
        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
    } elseif ( is_page( 10 ) ) {
        //idが10の固定ページだった場合
        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
    } elseif ( is_single() ) {
        //単一記事ページだった場合
        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
    }
}
add_action( 'template_redirect', 'status404' ); 

その他の条件分岐はWordPressのCODEXを参考にしてみてください。

条件分岐タグ – WordPress Codex 日本語版

書いた人

Symbol Mark

Ryoichi(しつ)

除菌ティッシュを買い込んで使いきれずによく乾かす人。

療養目的で退職し、どうやって生きていくか模索中。最近は勉強目的でLaravelやVue.js弄ったり、趣味で音で遊んでます。

※2019年10月16日現在ブログリニューアル中です。崩れなどが発生していたらすみません。

うぇぶ: @s_ryone