特定のページ(例えば固定ページや投稿記事など)へアクセスが来た場合にステータス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を参考にしてみてください。