前提・実現したいこと
archive-○○.php
に、カスタム投稿の内容をWP_Query
(サブループ)で表示しています。
paginate_links
でページャーを表示しているのですが、2ページ目以降が、index.php
の内容で表示されてしまいます。
↑URLはdomain/news/page/2
のようにちゃんと変わっています。
どのサイトを見ても、「2ページ目以降が404」の時どうすればいいかという内容しか書いておらず、
「2ページ目以降がindex.phpの内容が表示される」時はどうすればいいかを説明しているサイトが見つかりませんでした。
ご教授のほどお願い致します。
※wp管理画面のパーマリンクは更新してから表示確認をしています。
archive-news.php
<?php global $max_num_page; $paged = get_query_var('paged') ? get_query_var('paged') : 1; $args = array( 'post_type' => 'news', 'posts_per_page' => 2, 'orderby' => 'date', 'order' => 'DESC', 'paged' => $paged, ); $the_query = new WP_Query( $args ); while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <!--ここにループの中の記述 --> <?php endwhile; wp_reset_postdata(); ?> <?php if ($the_query->max_num_pages > 1) { echo '<div class="pagination">'; echo paginate_links( array( 'base' => get_pagenum_link(1).'%_%', 'format' => 'page/%#%/', 'current' => max(1, $paged), 'total' => $the_query->max_num_pages, 'type' => 'list', 'mid_size' => '1', 'prev_text' => '<', 'next_text' => '>' ) ); echo '</div>'; } ?>
functions.php
// ================================================================================ // カスタム投稿関係 // ================================================================================ /*** * * カスタム投稿定義 * ***/ function my_add_post_type() { register_post_type( 'news', array( 'label' => 'お知らせ', 'labels' => array( 'name' => 'お知らせ', 'singular_name' => 'お知らせ', 'all_items' => 'お知らせ一覧', ), 'public' => true, 'has_archive' => true, 'menu_position' => 5, 'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields', 'revisions', ), ) ); } add_action('init', 'my_add_post_type'); /*** * * タクソノミー定義 * ***/ function my_add_taxonomy() { register_taxonomy( 'news-cat', 'news', array( 'label' => 'お知らせの種類', 'singular_label' => 'お知らせの種類', 'labels' => array( 'all_items' => '全ての種類', 'add_new_item' => 'お知らせの種類を追加' ), 'public' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'hierarchical' => true, 'rewrite' => array('slug' => 'news'), ) ); } add_action('init', 'my_add_taxonomy'); /*** * * 投稿詳細とタクソノミー一覧のURLリライト * ***/ function my_post_type_rewrite() { global $wp_rewrite; // お知らせ $wp_rewrite->add_rewrite_tag('%news%', '(news)','post_type='); $wp_rewrite->add_permastruct('news', '/%news%/%post_id%/', false); } add_action('init', 'my_post_type_rewrite'); function my_post_type_permalink($post_link, $id = 0, $leavename) { global $wp_rewrite; $post_delivery = get_post($id); $post = $post_delivery; if(is_wp_error( $post )){ return $post; } // お知らせ if('news' === $post->post_type){ $newlink = $wp_rewrite->get_extra_permastruct($post->post_type); $newlink = str_replace('%news%', $post->post_type, $newlink); $newlink = str_replace('%post_id%', $post->ID, $newlink); $newlink = home_url(user_trailingslashit($newlink)); return $newlink; } return $post_link; } add_filter('post_type_link', 'my_post_type_permalink', 1, 3);
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください
回答1件
あなたの回答
tips
プレビュー