PageNaviを特定のカテゴリやアーカイブでページ遷移をしても1ページ目が表示される場合の問題を解決するためのメモ

Wordpress on the back

WordPressでPageNaviを使用した際につまづいた点をメモ。

query_postsのcatでカテゴリIDを指定してカテゴリの記事一覧を取得している場合に、
アーカイブ(archive.php)やカテゴリーテンプレート(category.php)で
ページ送り(ページネーション)プラグイン「wp_pagenavi」を使用する場合
2ページ目以降も1ページ目と同じ記事が表示されてしまうことがあります。

そんな時は、query_postsの最後に$pagedを入れると正常に動作するようになります。

query_posts関数を使っている場合、そこにページ番号が入っていないと、常に1ページ目を取得しようとしてしまいます。

<?php $paged = get_query_var('paged'); ?>
<?php if (have_posts()) : query_posts( '$query_string&posts_per_page=20&category_name=news&paged='.$paged); ?>

<?php while ( have_posts() ) : the_post(); ?>
ループ内容
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>

<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
<?php wp_reset_query();?>

posts_per_pageは投稿された記事の表示数
category_nameはカテゴリのスラッグ名

上記以外にもカテゴリIDやタグ名で絞り込むこともできます。
またタグの場合はtagやcatをquery_postの中の入れます。

例:tag=”特定の文字”
例:cat=-17,-21

みたいな感じです。

参考になれば幸いです。

  • Pocket
  • LINEで送る
  • このエントリーをはてなブックマークに追加

コメントを残す




関連記事

WordPressで使われる昇順(ascending order)、降順(descending order)の正式名称
WordPressのアイキャッチ画像のメタボックスに任意のテキストを挿入する方法
WordPressをインストールしているディレクトリの外部でWordPressのテンプレートタグを利用する時に入れるコード
WordPressをインストールしたディレクトリと同じ階層にindex.htmlがある時の開発準備TIPS
WordPressでヘッダーに自動的にhtml5shiv.jsを挿入する方法
ナレッジベース&wiki的な無料・有料のWordPressテーマ11選をまとめてみました
WordPress(ワードプレス)の管理バー(アドミンバー)を非表示にさせる方法
WordPressのカテゴリの記事やリンク一覧を取得するためによく使う3つのテンプレート
ワードプレスの個別記事で投稿した月のカレンダーを表示させるphpコード
WordPressのアップグレード更新通知を非表示にする&管理者権限のユーザー以外を非表示にする方法
Auto Post Thumbnailプラグインを入れて画像がダブってしまった時に片方を非表示にする方法
プラグイン○○を完全に削除できませんでしたと表示されプラグインの削除に失敗した時の解決法
WordPress(ワードプレス)の個別記事で投稿した月のカレンダーを表示させるコード
WordPressのディレクトリ外でWordPressの情報(WordPressタグや新着一覧)を表示させる方法
アップロードした画像を自動でリサイズしてくれるWordPressプラグイン「Imsanity」

Menu

HOME

 TOP