PS Auto Sitemapと言えば、サイトマップを生成してくれるWordPressのプラグインであるが、運営しているジャズ系のサイトにおいて、カスタム投稿タイプの記事がサイトマップに反映されないという事態が発生していたので、対応方法をメモしておく。
対象バージョンは、PS Auto Sitemapの1.17である。
修正が必要なファイルは、”ps-auto-sitemap/ps_auto_sitemap.php” であった。
下記の通り、投稿タイプは、ソースコードの中に”post”とハードコーディングされていた。通常の「投稿」にだけ対応しているようであるので、ここを変更する。
224行目~227行目の
[php]<p style="padding-left: 30px;">WHERE `posts`.`post_status` = ‘publish’
AND `posts`.`post_type` = ‘post’
AND `posts`.`ID` NOT IN ( $ex_post_ids )
AND `terms`.`term_id` = ‘$cat_id'</p>[/php]
これを
[php]<p style="padding-left: 30px;">WHERE `posts`.`post_status` = ‘publish’
AND (`posts`.`post_type` = ‘post’
OR `posts`.`post_type` = ‘xxx1’
OR `posts`.`post_type` = ‘xxx2’
OR `posts`.`post_type` = ‘xxx3’
OR `posts`.`post_type` = ‘xxx4’)
AND `posts`.`ID` NOT IN ( $ex_post_ids )
AND `terms`.`term_id` = ‘$cat_id'</p>[/php]
と変更することで、通常の「投稿」以外のカスタム投稿タイプについても、サイトマップの生成対象に含まれるようになる。
なお、上記のソースコード例の「xxx1~xxx4」は、投稿タイプ毎のスラッグ。
コメント