WordPressにJetPackを導入されている方も多いと思います。私も活用しています。
JetPackのサイトマップ sitemap.xml の自動生成機能はとても便利ですが、カスタム投稿に対応していません。サイトマップにカスタム投稿を追加したい人もいらっしゃると思います。
今回はJetPackのサイトマップ sitemap.xml にカスタム投稿を追加する方法について記載していきます。
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に関するご相談はお問い合わせからご連絡ください。
コメント