WordPress|JetPackのサイトマップ sitemap.xml にカスタム投稿タイプを追加する方法

更新日
2022年11月22日
作成日
2022年6月5日

WordPressにJetPackを導入されている方も多いと思います。私も活用しています。

JetPackのサイトマップ sitemap.xml の自動生成機能はとても便利ですが、カスタム投稿に対応していません。サイトマップにカスタム投稿を追加したい人もいらっしゃると思います。

今回はJetPackのサイトマップ sitemap.xml にカスタム投稿を追加する方法について記載していきます。

WordPress 6.0 と JetPack 10.9.1 にて検証しています。ソースコードの修正の前にはバックアップをされることをお勧めします。

PHPソースコード

フィルターフック jetpack_sitemap_post_types を利用して投稿タイプを追加します。

以下の例では、musicというカスタム投稿タイプをJetPackのサイトマップ sitemap.xmlに追加しています(music箇所はご自身の用意したカスタム投稿タイプ名を入力してください)。

if ( !function_exists( 'ict_jetpack_sitemap_post_types' ) ) {
	function ict_jetpack_sitemap_post_types( $post_types ) {
	    $post_types[] = 'music';
	    return $post_types; 
	}
	add_filter( 'jetpack_sitemap_post_types', 'ict_jetpack_sitemap_post_types' ); 
}

PHPソースコードの解説

JetPackデベロッパーサイトに フィルターフック jetpack_sitemap_post_types についての詳細が記載されています。

The array of post types to be included in the sitemap.

参考サイト:jetpack_sitemap_post_types

投稿タイプの配列をサイトマップに代入する、というフィルターフックという説明通りとなりますが、配列 $post_types に music というカスタム投稿タイプを追加し$post_typesをretuenするというものとなっています。

上記の例ではmusicというカスタム投稿タイプが1つの場合を想定していますが、musicとfoodという2つ(または2つ以上の)投稿タイプがある場合は、以下のように配列を追加してあげることで対応は可能です。

$post_types = array_merge($post_types, array('music', 'food'));

ソースコードの適用後、サイトマップ一覧にカスタム投稿が表示されない場合は、JetPackの設定画面 > トラフィックの画面でXMLサイトマップを生成箇所を一旦オフにして再度オンにするとカスタム投稿が一覧に表示されます。

以上、JetPackのサイトマップ sitemap.xml にカスタム投稿タイプを追加する方法でした。

ICTよろず相談所ではWordPressの修正・機能追加をはじめ、WordPressに関するお困りごとへの対応を承っております。WordPressに関するご相談はお問い合わせからご連絡ください。

  • 有償のサポートを希望する

    ICTよろず相談所は、ホームページ制作、ネットショップ開業・運用、ブログ運用、SNS運用などインターネットに関する事業支援を行なっております。