WordPressが自動生成するサイトマップ(wp-sitemap.xml)から特定の投稿タイプやタクソノミー、著者別アーカイブを除外する方法

WordPressが自動生成するサイトマップ(wp-sitemap.xml)から特定の投稿タイプやタクソノミー、著者別アーカイブを除外する方法

WordPressが自動生成するサイトマップ(wp-sitemap.xml)から特定の投稿タイプやタクソノミー、著者別アーカイブを除外する方法

WordPress5.5から追加されたサイトマップ機能によって生成されるwp-sitemap.xmlから、特定のURLを除外したいというケースは結構あるかと思います。

そこで、投稿タイプ・タクソノミー・著者別アーカイブを除外する方法をそれぞれご紹介したいと思います。

WordPressが自動生成するサイトマップから特定のURLを除外する方法

特定の投稿タイプを除外

特定の投稿タイプを除外したい場合は、適用しているテーマのfunctions.phpに以下を追記します。

add_filter (
  'wp_sitemaps_post_types',
  function( $post_types ) {
    unset( $post_types['投稿タイプ名'] );
    return $post_types;
  }
);

例えば、固定ページとnewsというカスタム投稿を除外したい場合は、以下のように記述します。

add_filter (
  'wp_sitemaps_post_types',
  function( $post_types ) {
    unset( $post_types['page'] );
    unset( $post_types['news'] );
    return $post_types;
  }
);

このように、除外したい投稿タイプの分「unset( $post_types[‘投稿タイプ名’] );」を追加します。

参考:【WordPress】XMLサイトマップ生成機能で特定の投稿タイプを除外する方法

特定のタクソノミーを除外

特定のタクソノミーを除外したい場合は、以下のように記述します。

add_filter (
  'wp_sitemaps_taxonomies',
  function( $taxonomies ) {
    unset( $taxonomies['タクソノミー名'] );
    return $taxonomies;
  }
);

例えば、タグとnews_catというタクソノミーを除外したい場合は、以下のようにします。

add_filter (
  'wp_sitemaps_taxonomies',
  function( $taxonomies ) {
    unset( $taxonomies['post_tag'] );
    unset( $taxonomies['news_cat'] );
    return $taxonomies;
  }
);

参考:【WordPress】XMLサイトマップ生成機能でカテゴリーやタグを除外する方法

著者別アーカイブを除外

著者別アーカイブを除外したい場合は、以下のように記述します。

add_filter (
  'wp_sitemaps_add_provider',
  function( $provider, $name ) {
    if ( 'users' === $name ) {
      return false;
    }
    return $provider;
  },
  10,2
);

特定ユーザーの著者別アーカイブを除外

特定ユーザーの著者別アーカイブのみを除外したい場合は、以下のようにします。

add_filter (
  'wp_sitemaps_users_entry',
  function ( $sitemap_entry, $user ) {
    if ( 'ユーザー名' === $user->data->user_login ) {
      return [];
    }
    return $sitemap_entry;
  },
  10,2
);

参考:【WordPress】XMLサイトマップ生成機能で投稿者別サイトマップを削除する方法

あとがき

サイトマップから特定のURLを除外したい時は、上述した方法で削除しちゃいましょう。

とはいえ、wp-sitemap.xmlは無効化して、サイトマップはプラグインを使って生成した方が随分と楽ですね。WordPressが生成するサイトマップ自体が不要な場合は、「WordPress5.5から追加されたXMLサイトマップ機能を無効化する方法」をご参照ください。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です