今回は複数のカスタム投稿をまぜてアーカイブページに表示したい場合のコードを紹介します。
今回は不動産系のサイトで二つのカスタム投稿(賃貸’rent’と売買’sell’)を混ぜる想定でのコードを紹介します。
コード紹介・解説
●functions.php
function pre_get_posts_custom( $query ) {
if ( is_admin() || !$query->is_main_query() ) { return; }
if ( $query->is_post_type_archive( 'post' ) && !$query->is_search() ){
$query->set( 'post_type', array( 'rent', 'sell' ) );
}
}
add_action( 'pre_get_posts', 'pre_get_posts_custom' );
上記コードをfunctions.phpに追加しましょう。’rent’や’sell’については適宜変更してください。(値以上の「投稿」は’post’で追加可能です。)
あとはアーカイブテンプレートでメインループを書きます。
※サブループではページネーションが機能しないことがあるそうなので、今回はメインループで紹介しています。
●archive.php/archive-○○.php
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<!-- △ ループの中身を記述 △ -->
<?php endwhile; ?>
<?php else: // 投稿がない場合?>
<p>まだ投稿がありません。</p>
<?php endif; ?>
archive.phpのほうは普通のメインループです。
コーディングでお困りなら、、、
コーディングの実装でお困りの場合は https://coding-shop.net/contact/ こちらよりお問い合わせください。
またコーディングの委託など、お仕事に関するお問い合わせも上記リンクよりお気軽にご連絡ください。