WordPressでプラグイン「Custom Post Type UI」を使って複数のカスタム投稿タイプを作り、
固定ページで複数のカスタム投稿タイプからの投稿を一覧で表示させているのですが、
2ページ目以降が404エラーで表示されません。
ご教示いただけますと幸いです。
宜しくお願い致します。
■複数のカスタム投稿タイプ
スラッグ:blog_a
スラッグ:blog_b
スラッグ:blog_c
■複数のカスタム投稿タイプをまとめた一覧ページ(固定ページ)
ファイル名:home.php
スラッグ:blog
1ページ目のURL:http://www.example.com/blog/ ※このページは表示されています。
2ページ目のURL:http://www.example.com/blog/page/2/ ※404エラーで表示されません。
■パーマリンク設定
http://www.example.com/blog/%category%/%postname%/
■ページナビゲーション設定
<?php if ( ! function_exists( 'sample_pagination' ) ): function sample_pagination( $args = array(), $query = false ) { $args = wp_parse_args( $args, apply_filters( 'sample_pagination_default_args', array( 'container_id' => 'paging', 'container_class' => 'group', 'prev_text' => esc_html__( 'Previous page', 'sample' ), 'next_text' => esc_html__( 'Next page', 'sample' ), 'paginate_links_args' => array() ) ) ); if ( 'object' != gettype( $query ) || 'WP_Query' != get_class( $query ) ) { global $wp_query; $query = $wp_query; } // Set things up for paginate_links() $unreal_pagenum = 999999999; $permastruct = get_option( 'permalink_structure' ); $paginate_links_args = wp_parse_args( $args['paginate_links_args'], array( 'base' => str_replace( $unreal_pagenum, '%#%', esc_url( get_pagenum_link( $unreal_pagenum ) ) ), 'format' => empty( $permastruct ) ? '&page=%#%' : 'page/%#%/', 'total' => $query->max_num_pages, 'current' => max( 1, get_query_var( 'paged' ), get_query_var( 'page' ) ), ) ); $method = get_theme_mod( 'pagination_method', 'numbers' ); if ( $query->max_num_pages > 1 ) { ?> <div <?php echo empty( $args['container_id'] ) ? '' : 'id="' . esc_attr( $args['container_id'] ) . '"'; ?> <?php echo empty( $args['container_class'] ) ? '' : 'class="' . esc_attr( $args['container_class'] ) . '"'; ?> ><?php switch ( $method ) { case 'text': previous_posts_link( $args['prev_text'] ); next_posts_link( $args['next_text'], $query->max_num_pages ); break; case 'numbers': default: echo paginate_links( $paginate_links_args ); break; } ?></div><?php } } endif; ?>
■固定ページの記述
<?php $args = array( 'post_type' => array('blog_a','blog_b','blog_c'), 'posts_per_page' => 10, 'paged' => get_query_var( 'paged' ), ); ?> <?php query_posts( $args ); ?> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> ここにループ内容 <?php endwhile; ?> <?php sample_pagination(); ?> <?php wp_reset_query(); ?>
回答3件
あなたの回答
tips
プレビュー