質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.42%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

17091閲覧

カスタム投稿アーカイブで2ページ目以降がすべて1ページ目と同じになってしまう。

cheche0830

総合スコア187

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2020/05/22 04:06

表題の通り下記のコードにてカスタム投稿アーカイブ(archive-news.php)にページネーションのwp-pagenaviプラグインを導入してやってみたのですが、2ページ目以降は一件表示されているかと思ったのですがよく見たらページの内容がすべて同じでした。どこがおかしいでしょうか?

試したこと:
プラグインが原因かと思い普通に
the_post_navigation( $args )
なども使用してみたが同様の結果。

表示する投稿数が管理画面の表示件数と一致してないと動かない場合があると見たので、
20でそろえたが変化なし。

<?php $taxonomy_names = get_post_taxonomies(); $terms = get_the_terms( $post->ID, $taxonomy_names ); foreach ( $terms as $term ) { $id = $term->term_id; $name = $term->name; // 名前 $slug = $term->slug; // スラッグ $des = $term->description; // ディスクリプション } ?> <div class="grid"> <?php $postTypeName = 'news'; //投稿タイプの名前 $num = 20; //表示する投稿の数 -1で全部 $args = array( 'posts_per_page' => $num, 'post_type' => $postTypeName ); $myPost = get_posts( $args ); foreach ( $myPost as $post ): setup_postdata( $post ); $term_name = ''; $terms = get_the_terms( $post->ID, 'news_category' ); $length = count( $terms ); if ( is_array( $terms ) ) { foreach ( $terms as $key => $term ) { if ( $key === $length - 1 ) { $term_name .= $term->name; } else { $term_name .= $term->name . ', '; } } } ?> <a href="<?php echo the_permalink(); ?>"> <div class="in"> <p class="tit"><?php echo $title = get_the_title( ); ?></p> <ul class="keywords"> <?php if ( $terms = get_the_terms( $post->ID, 'news_tag' ) ) { foreach ( $terms as $term ) { ?> <li> <p><?php echo $term->name; ?></p> </li> <?php } } ?> </ul> </div> </a> <?php endforeach; ?> </div> <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

クエリにpagedの指定を入れましょう

php

1 $args = array( 2 'posts_per_page' => $num, 3 'post_type' => $postTypeName, 4 'paged' => get_query_var( 'paged', 1 ) 5 );

投稿2020/05/22 07:58

KazuhiroHatano

総合スコア7819

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cheche0830

2020/05/22 08:43

ああ。、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.42%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問