新着一覧記事で、ページネーションを作成したい
解決したいこと
カスタム投稿タイプで作成した新着一覧記事で、ページネーションを作成したいと思っております。
下記のサイトに倣って作成してみたのですが、ページネーションのリンクをクリックしても、次のページに飛ばずトップページに戻ってしまいます…。
https://deep-space.blue/web/1695
一度 'post_type'の種類を1つに設定してみると、ページネーションがうまく機能したのですが、複数設定した途端機能しなくなってしまいます。
コードのどこに問題点があるか、ご教示いただけますと大変有難く存じます。
また、作成したコードも下記に記載いたしますので、もしお時間がございましたらご確認いただけますと大変有難く存じます。m(__)m
html
<section class="l-all-archive p-all-archive">
<div class="p-all-archive__inner inner">
<!-- ボタン -->
<ul class="p-all-archive__menu">
<li class="p-all-archive__button">
<a href="<?php echo get_post_type_archive_link('all'); ?>">
<label for="">
<input type="radio" name="fruits" value="1" id="all" checked>
すべて
</label>
</a>
</li>
<li class="p-all-archive__button">
<a href="<?php echo get_post_type_archive_link('news'); ?>">
<label for="">
<input type="radio" name="fruits" value="1" id="news">
お知らせ一覧
</label>
</a>
</li>
<li class="p-all-archive__button">
<a href="<?php echo get_post_type_archive_link('event'); ?>">
<label for="">
<input type="radio" name="fruits" value="1" id="news">
イベント
</label>
</a>
</li>
<li class="p-all-archive__button">
<a href="<?php echo get_post_type_archive_link('houryu'); ?>">
<label for="">
<input type="radio" name="fruits" value="1" id="news">
放流情報
</label>
</a>
</li>
<li class="p-all-archive__button">
<a href="<?php echo get_post_type_archive_link('chouka'); ?>">
<label for="">
<input type="radio" name="fruits" value="1" id="news">
釣果情報
</label>
</a>
</li>
</ul><!-- .tab-menu -->
<!-- 内容 -->
<div class="p-all-archive__content">
<!-- ページネーション -->
<div class="pagination">
<div class="p-all-archive__items">
<?php
$wp_query = new WP_Query();
$my_posts = array(
'post_type' => array('news', 'event', 'houryu', 'chouka'),
'posts_per_page' => '15',
'post_status' => 'publish',
'paged' => $paged,
'orderby' => 'date',
'order' => 'DESC'
);
// ループさせるコンテンツ
$wp_query->query($my_posts);
if ($wp_query->have_posts()) : while ($wp_query->have_posts()) : $wp_query->the_post();
$obj = get_post_type_object($post->post_type); //投稿タイプ情報を取得
?>
<!-- 条件分岐 偶数奇数で色を変える-->
<?php if (($wp_query->current_post + 1) % 2 == 0) :
$class = 'p-all-archive__item-white';
else :
$class = 'p-all-archive__item';
endif; ?>
<!-- ループコンテンツ -->
<a class="p-all-archive__link" href="<?php the_permalink(); ?>">
<div class="p-all-archive__contents">
<div class="<?php echo $class; ?>">
<div class="p-all-archive__text">
<dl class="p-all-archive__text-items">
<dt class="p-all-archive__text-item">
<span class="p-all-archive__date"><?php the_time('Y/m/d'); ?></span>
<span class="p-all-archive__archive">
<?php
$post_type = get_post_type(); //投稿タイプ名(スラッグ)の取得
$post_type_object = get_post_type_object($post_type); //投稿タイプの情報を取得
echo $post_type_object->labels->singular_name; //単数形のラベル
?>
</span>
</dt>
<dd class="p-all-archive__title">
<?php
if (mb_strlen($post->post_title) > 20) {
$title = mb_substr($post->post_title, 0, 20);
echo $title . '...';
} else {
echo $post->post_title;
}
?>
</dd>
</dl>
</div>
<!-- アイッキャッチ -->
<div class="p-all-archive__img">
<?php if (has_post_thumbnail()) : ?>
<?php the_post_thumbnail(); ?>
<?php else : ?>
<?php endif; ?>
</div>
</div>
</div>
</a>
<!-- ここまでループさせる内容 -->
<?php endwhile;
endif;
wp_reset_postdata(); ?>
<!-- ここまでループコンテンツ-->
</div>
<!-- ここから ページネーション続き -->
<div class="archive-all-pagination">
<?php wp_pagination(); //ページネーション
?>
</div>
</div>
</div>
</div>
</section>
functions.php
// 新着一覧のページネーション表示
function wp_pagination()
{
global $wp_query;
$big = 999999999;
echo paginate_links(array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => max(1, get_query_var('paged')),
'total' => $wp_query->max_num_pages,
'prev_text' => '←',
'next_text' => '→',
));
}
add_action('init', 'wp_pagination');
コーディング初心者のため、分かりづらい上に初歩的な質問となってしまい申し訳ありません。
どなたか、ご教示いただけますと大変ありがたく存じます。
どうぞよろしくお願いいたします。m(__)m
0