お問い合わせはコチラから

カスタム投稿一覧をHTMLサイトマップで表示する

サイト運営

HTMLのサイトマップを作成するプラグインは結構ありますが、カスタム投稿タイプに対応していないことがあります。

例えば、PS auto sitemapはカスタム投稿タイプに対応していません。

PS auto sitemapは少しのカスタマイズでカスタム投稿タイプに対応できることが知られていますが、プラグインのソースを変更する必要があり、バージョンアップで消えてしまうため、敬遠する人も多いと共います。(PS auto sitemapは全く更新されていないのですが。。。)

海外製のプラグインを使えば対応しているものもありますが、実際に導入してみるとデザイン的にどうなの?という感じは否めません。

プラグインを使わずにHTMLサイトマップをカスタム投稿タイプに対応させる

そこで、プラグインを使わずに自前でHTMLサイトマップを作るには?という場合は以下の記事が参考になります。

ところが、このショートコードもカスタム投稿タイプに対応していません。

カスタム投稿タイプに対応させるカスタマイズ

以下のコードを追加することで、すべてのカスタム投稿タイプの記事を表示することができるようになります。

<?php
	global $post;
?>
    <h2>カスタム投稿一覧</h2>
    <ul>
<?php
	$names = get_post_types( array( 'public'  => true, '_builtin' => false ) );
	$posts = get_posts( array( 'post_type' => $names ) );
	foreach( $posts as $post ) { setup_postdata( $post ); ?>
		<li><a href="<?php the_permalink() ?>"><?php the_title() ?></a></li>
		<?php
	} 
	wp_reset_postdata(); wp_reset_query(); ?>
    </ul>
  <?php endif; ?>

まとめ

カスタムタクソノミーごとに出力した方がスマートかもしれませんが、それはそれで面倒なので、今回のようにカスタム投稿タイプ全部を対象にしてしまうと出力するのは結構簡単ですよ、というお話でした。

タイトルとURLをコピーしました