【カスタム投稿タイプで記事一覧を出力する方法】
概要
https://dezanari.com/wordpress-cpt-archive/
上記の記事を参考にサブループとやらを使うことはわかりました、しかし、以下の内容が発生しており困惑しています。
カスタム投稿で記事一覧を出す場合は、通常のメインループの書き方で問題ないのでしょうか。
ちなみにカスタム投稿を使うプラグインは「Custom Post Type UI」を使用しております。
問題
カスタム投稿を出力するループ文が以下の記述で出てくるようになっている
カスタム投稿は以下のコードの感じで記述するイメージでしたが、普通のメインループ?の書き方でもカスタム投稿の記事が出るようになっているので
これは大丈夫なのか?と思いました。また、この記述で行うとarchive-blog.phpにあるページネーションが正常に動作しなくなります。(次のページにURLは飛ぶが同じ記事が出続ける)
if ( $blog_query->have_posts() ): while ( $blog_query->have_posts() ): $blog_query->the_post(); ?> コード
通常の投稿タイプのアーカイブページと、カスタム投稿のアーカイブページのコード
category.php
こちらのテンプレートファイルは、「デフォルトの投稿タイプ」の記事一覧にしようします。
<?php get_header(); ?> <main class="under__main-wrapper"> <!-- パンくずリスト --> <?php echo '<div class="breadcrumbs">' ; if(function_exists('bcn_display')){ bcn_display(); } echo '</div>'; ?> <!-- パンくずリスト --> <h2 class="under__title">Works</h2> <h3 class="under__title-ja">制作実績</h3> <!-- 制作実績一覧 --> <ul> <?php if(have_posts()): while(have_posts()): the_post(); ?> <li class="archive__item"> <?php if(has_post_thumbnail()){ the_post_thumbnail(''); } else{ echo '<img src="' . esc_url(get_template_directory_uri()) . '/img/noimg.png" alt="">'; } ?> <div class="archive__item-info"> <h4><?php the_title(); ?></h4> <p> <?php the_excerpt(); ?> </p> <a href="<?php the_permalink(); ?>" class="archive__btn">もっと見る</a> </div> </li> <?php endwhile; endif; ?> </ul> <!-- 制作実績一覧 --> <!-- ページネーション --> <div class="pagenation__list"> <?php if ( paginate_links() ) : //ページが1ページ以上あれば以下を表示 ?> <!-- pagenation --> <div class="pagenation"> <?php echo paginate_links( array( 'end_size' => 2, 'mid_size' => 0, 'prev_next' => true, 'prev_text' => '<i class="fas fa-angle-left"></i>',//FontAwesome 'next_text' => '<i class="fas fa-angle-right"></i>',//FontAwesome 'format' => '?paged=%#%', ) ); ?> </div><!-- /pagenation --> <?php endif; ?> </div> <!-- ページネーション --> </main> <?php get_footer(); ?> コード
archive-blog.php
こちらのテンプレートファイルは、「カスタム投稿タイプ」の記事一覧にしようします。(スラッグはblogとします)
こちらで動くのですが、通常のループ文の書き方で問題ないかしりたいです。
<?php get_header(); ?> <main class="under__main-wrapper"> <!-- パンくずリスト --> <?php echo '<div class="breadcrumbs">' ; if(function_exists('bcn_display')){ bcn_display(); } echo '</div>'; ?> <!-- パンくずリスト --> <h2 class="under__title">Blog</h2> <h3 class="under__title-ja">ブグ</h3> <!-- 制作実績一覧 --> <ul> <?php if(have_posts()): while(have_posts()): the_post(); ?> <li class="archive__item"> <?php if(has_post_thumbnail()){ the_post_thumbnail(''); } else{ echo '<img src="' . esc_url(get_template_directory_uri()) . '/img/noimg.png" alt="">'; } ?> <div class="archive__item-info"> <h4><?php the_title(); ?></h4> <p> <?php the_excerpt(); ?> </p> <a href="<?php the_permalink(); ?>" class="archive__btn">もっと見る</a> </div> </li> <?php endwhile; endif; wp_reset_postdata();?> </ul> <!-- 制作実績一覧 --> <!-- ページネーション --> <div class="pagenation__list"> <?php if ( paginate_links() ) : //ページが1ページ以上あれば以下を表示 ?> <!-- pagenation --> <div class="pagenation"> <?php echo paginate_links( array( 'end_size' => 2, 'mid_size' => 0, 'prev_next' => true, 'prev_text' => '<i class="fas fa-angle-left"></i>',//FontAwesome 'next_text' => '<i class="fas fa-angle-right"></i>',//FontAwesome 'format' => '?paged=%#%', ) ); ?> </div><!-- /pagenation --> <?php endif; ?> </div> <!-- ページネーション --> </main> <?php get_footer(); ?> コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/07/25 05:44