WordPressで、author/month/year などの不要なアーカイブページを404にする。

最終更新:2017-09-07 by Joe

WordPressにおいて、authorなどの普段あまり使わないアーカイブページへのアクセスに対して、404を返す方法です。

WordPress不要なアーカイブを404にする方法

WordPressで、サイトが、メディアサイトでもない限り、authorアーカイブはあまり使いませんよね。基本的に放置でもそれほど問題ないはずですが「なぜか検索結果で目立つところにでてきてしまう!」など、どうしても非表示にしたい場合に利用できます。

add_action( 'parse_query', 'disable_some_archives');
function disable_some_archives() {
  if ( is_author() || is_tag() || is_date() || is_month() || is_year() ) {
    global $wp_query;
    $wp_query->set_404();
    status_header( 404 );
    get_template_part( 404 );
    exit;
 }
}

 

注意事項です。

  • headerを書き換えますので、disable_some_archivesは、必ずまだ何もテキストが出力されていない時に実行して下さい。
  • is_xxx が正確に使えるのは parse_queryアクションが実行された後です。よってfunction内にかく時は、上記のように、actionフィルターで実行して下さい。

 

参考