どうも、レーウィンです。初めてかもしれないWordpress記事。
今回はCRT UIを使ったときの注意点の1つと解決方法をご紹介。
CPT UIについては今更説明すんのもあれなので参考サイト様のリンクを貼っておきます。
http://affiliateones.com/2017/06/02/custom-post-type-ui%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E3%82%92%E5%BE%B9%E5%BA%95%E8%A7%A3%E8%AA%AC%EF%BC%81/
ここで、アーカイブを作りたいなら
設定>アーカイブあり
のところのFalseをTrueに変更すればいい。
で、アーカイブページにこんな感じのを書けば読んでくれる。
(content-single.phpを読み込む場合)
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); get_template_part( 'content', 'single' ); endwhile; echo '</ul>'; endif; ?>
ここまでは基本通り、ここからカテゴリのフィルターをかけようとしたら一般的にはquery_postsもしくはget_postsを使用するわけだけど、
query_postsを使用すると普通に書いたらこうなる
<?php query_posts('cat=12'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); get_template_part( 'content', 'single' ); endwhile; echo '</ul>'; endif; ?>
catのとこの数字はカテゴリのid。
これで表示されr・・・されない!!
query_postsはそのままの状態ではカスタム投稿を表示してくれないみたい。
で、post_typeを指定すれば表示される。
<?php query_posts('cat=12&post_type=test'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); get_template_part( 'content', 'single' ); endwhile; echo '</ul>'; endif; ?>
post_typeについては
CPT UI > 投稿タイプを表示
の各投稿jタイプの設定にあるnameにあるやつ。
これで表示されるはず。
ではでは。