add_action( 'template_redirect', 'status404' );
//404を返す
function status404() {
if ( is_author() ) {
global $wp_query;
$wp_query->set_404();
status_header(404);
}
}
http://blog.example.com/author/ユーザー名/
例えば、上記のような「投稿者アーカイブページ」を404にしてWordpressのページ自体存在しないようにしたい場合は、上記のようなPHPをテーマのfunctions.phpに追加すればOKです。
条件をかえれば、好きなページを404にすることが可能です。
add_action( 'template_redirect', 'status404' );
//404を返す
function status404() {
if ( is_author() ) {
global $wp_query;
$wp_query->set_404();
status_header(404);
}
if ( is_single(17)) {
global $wp_query;
$wp_query->set_404();
status_header(404);
}
}
例えば、記事IDが17番の記事を404にしたい場合は、上記のように追加すればよい。
記事:is_single()
固定ページ:is_page()
検索ページ:is_search()
Wordpressの場合、自動で生成されるページもあるのでそういうのを除きたい場合にも使えるかと思う。
参考:
・【WordPress】トップを固定ページにした際の2ページ目以降でステータス404を返す方法
・【WordPress】特定のページへアクセスが来たらステータス404を返す
・redirect - How to force a 404 on WordPress - WordPress Development Stack Exchange
スポンサーリンク