WordPressのページネーション
更新日:2025/05/01
WordPressのページネーションの基本
WordPressでは投稿記事の一覧ページ(アーカイブページ)があります。
アーカイブページでページネーションを使用します!
固定ページでは普通使わないです、1ページで完結する設計ですからね
アーカイブページのURLは下記です
/タクソノミーのスラッグ/タームのスラッグ/上記をベースににページについて追記し、そのページのURLになります
1ページに表示する記事数はWordPressの管理画面で設定できます
「表示設定」 > 「1ページに表示する最大投稿数」で設定functions.php や pre_get_posts フィルターでもカスタマイズ可能です!
ページネーション付きのURLパターン:
- カテゴリーの場合:
/category/news/page/2/ - タグの場合:
/tag/design/page/3/ - 投稿タイプアーカイブ:
/portfolio/page/4/ - 検索結果:
/?s=keyword&paged=2 - ブログトップ(
home.php):/page/2/
つまり「page/数字/」がアーカイブのパスに追加される構造です。
「1ページ目」のページネーションのURLの動作
たとえば、、正式URL → /category/news/
page/1/ は 省略される(または省略するのが普通)
/category/news/page/1/ にアクセスしても動くが、リダイレクトで省略形に戻されるのが一般的
2ページ目以降は
/category/news/page/2/
/category/news/page/3/ …
なぜ1を省略するか?
SEO的に「page/1/」と「カテゴリトップ」の2つのURLが同じ内容を指してしまう(重複コンテンツ)のを防ぐため。
Googleなどの検索エンジンに「正しいURLはこっちですよ」と示すため、WordPressは自動でリダイレクトします。
ページネーション関係の関数まとめ
| 関数名 | 用途 | カスタマイズ性 | 主に使う場面 |
|---|---|---|---|
posts_nav_link() | 「前へ」「次へ」のリンク表示 | ✕ ほぼない | 古いテーマ、最低限のナビでOKなとき |
next_posts_link() | 「次のページ」リンクを表示 | △ ラベル文字のみ | 投稿一覧などで使える |
previous_posts_link() | 「前のページ」リンクを表示 | △ ラベル文字のみ | 上とセットで使う |
paginate_links() | 数字付きページネーション(1 2 3 …) | ◎ HTMLも調整可能 | オリジナルテーマやデザイン対応が必要なとき |
the_posts_pagination() | paginate_links()のラッパー関数(WordPress 4.1以降) | ◯ クラス名やテキストを調整できる | シンプル&モダンなテーマで使う |
the_posts_navigation() | previous_posts_link() / next_posts_link()のラッパー | △ 最低限のスタイルでOKなら | Twenty系テーマとかでよく使われる |
| 関数名 | 役割 | よく使う場面 |
|---|---|---|
get_query_var('paged') | 現在のページ番号を取得(クエリ変数から) | WP_Query やページネーションの現在位置取得時 |
get_pagenum_link() | 任意ページ番号のリンクURLを生成 | paginate_links() の base 設定に使う |
user_trailingslashit() | パーマリンクの末尾にスラッシュを付ける(WordPress流) | パーマリンク形式の整合性を保つために使う |
set_query_var() | テンプレートパーツに変数を渡す(例えばクエリオブジェクト) | get_template_part() とセットで使う |
get_query_var() | set_query_var() で渡された変数を取得する | paging.php 内で $paging_query を取得 |
ページネーションの機能をテンプレートファイルにまとめる場合は「set_query_var()」
ページネーションを別ファイルのテンプレートに記述して呼び出し「get_template_part()」で実装する場合は注意が必要です、、
WordPressのメインクエリはグローバル変数 $wp_query に格納されていますが、テンプレートを分割して get_template_part() で呼び出すと、そのスコープには $wp_query が見えない場合があります。
global $wp_query;
// ページネーションのテンプレートファイルでクエリが見えないため明示的渡す
set_query_var('paging_query', $wp_query);
get_template_part('ページネーションのテンプレートファイル');
-
検索
(例) debug search etc.. -
カテゴリー
-
mixhostでのWordPress利用について
更新日:2024/04/02
303 view
-
scrollHint
更新日:2024/03/13
251 view
-
XML Sitemap Generator for Google不具合のダウングレード対応、代替プラグイン
更新日:2024/06/13
243 view
-
【SnowMonkey】納品までのフローまとめ
更新日:2025/02/15
164 view
-
【Snow Monkey】ショートコードで編集画面で任意の場所にHTMLファイルを挿入
更新日:2025/04/18
131 view
-
【Googleサーチコンソール】検索画面で表示させたくない「Googleのインデックス削除」
更新日:2024/06/07
131 view
-
tailwindcss使い方
更新日:2024/03/13
125 view
-
キーワード検索で上位表示させる方法【SEO】
更新日:2023/10/28
120 view
-
Recline: GitHub Copilotで動作するClaude 3.5 Sonnet搭載の開発支援ツール
更新日:2025/01/20
115 view
-
WordPressプラグイン「All-in-One WP Migration」のトラブル
更新日:2022/03/31
84 view
-
ワードプレスセキュリティー対策まとめ【2025年】「site guard wordpress」「BackWPup バージョン5でUI変更!?」
更新日:2025/02/25
77 view
-
VSCodeで開発効率を劇的に向上させる!Roo Code(Roo-Cline)プラグイン完全ガイド
更新日:2025/04/06
75 view
-
Express、FastAPIを使用し、二重fetch構成のメリット
更新日:2025/04/26
51 view
-
SSHを使用してGitHubのリポジトリをクローン、複数の接続元で公開鍵をディレクトリで区別する方法
更新日:2025/01/13
49 view
-
「JSONスキーマ」と「Few-shot Learning」で実現する次世代生成AIソフトウェア開発の可能性
更新日:2025/07/06
44 view
-
Supabase 初心者向け解説、Supabase CLI インストール(Scoop)
更新日:2025/06/07
44 view
-
Windowsショートカットエラーの原因と解決方法「このショートカットは、リンク先のファイルが変更または移動されているので、正しく機能しません」
更新日:2025/02/09
40 view
-
リファクタリング【VSCode Javasctipt Python】
更新日:2025/03/09
37 view
-
Next.jsでAWS Amplifyを使ってPDFアップロード機能を実装、Fast APIにPOST(こちらはApp runner)
更新日:2025/06/06
37 view
-
形態素解析とは?初心者でもわかるツールの使い方と実践例
更新日:2025/02/08
34 view