PR

【やってみた】WordPressのテーマ自作(09.ページネーション)

今回の記事は、STEP4の「WordPress関数に書き直す」の「09.ページネーション」の解説となります。ページネーションの設定、表示、そしてスタイルの調整を行います。ページネーションには「ボタンリンク」の方法と、「ページ番号付きリンク」の2つの方法がありますが、ここでは「ページ番号付きリンク」をご紹介します。

テーマ自作の流れ
テーマ自作の流れ
  • STEP1:
    静的サイトの作成

    ワイヤーフレームでサイトをデザインして、HTMLとCSSで静的サイトを作成します。index.htmlとstyle.cssでサイトを作成します。

  • STEP2:
    開発環境構築

    自分のパソコン内部だけで開発と動作テストが行えるWordPress専用の環境構築ソフト、HTML、CSS、PHPの編集の為のソースコードエディタ、そしてHTMLとCSSで構築された静的サイトを準備します。

  • STEP3:
    テーマの有効化

    自作テーマを有効化する為に、index.htmlをindex.phpに書き換え、style.cssを作成してWordPressにアップロードして認識してもらいます。

  • STEP4:
    WordPress関数に書き直す

    テーマとして認識できましたら、index.phpの内容をヘッダー、フッター、サイドバー等コンテンツごとに分割したり、アイキャッチ画像やナビゲーションメニュー等を設定する為に、WordPress関数に書き直していきます。

  • STEP5:
    サーバーにアップロード

    サーバーにアップしてWebに公開します。
    公開後、プラグインなどで必要な機能を追加したり、必要なカスタマイズを行います。

テーマ自作の流れ
スポンサーリンク

ページネーションの実装

解説動画は、こちら

ページネーションを実装する方法は、WordPress関数を使う方法と、関数を自作して実装する方法があります。ここでは備忘録を兼ねて2つご紹介します。

ページネーションの確認

ページネーションには「ボタンリンク」の方法と、「ページ番号付きリンク」の2つの方法がありますが、ここでは「ページ番号付きリンク」を設定します。

ページネーションの確認(index.php、VSC)

WordPress関数(the_posts_pagination)で実装

ページネーションの表示

WordPressのページネーションは、<?php the_posts_pagination(); ?>という関数で簡単に数字付きページネーションを実装することができます。リスト形式で出力されますので、後はstyle.cssで調整します。

the_posts_paginationの書き方

WordPressのトップページやカスタム投稿ページ、カテゴリーページなどに実装する場合、それぞれのテーマファイルに上記のコードを記述すると実装できます。

ページネーションの表示2(index.php、VSC)

サイトの確認

ページネーションの表示3(WordPress)

スタイルの調整

ソースを確認すると、「pagination」というクラスの中で「ul」タグと「li」タグで表示しています。

ページネーションの表示4(WordPress)

そこで、次のように調整します。(display:flexで横並びにします。)

/*ページネーション*/
.pagination ul {
 list-style: none;
 display: flex;
 margin: 0 auto;
 padding: 0;
}
.pagination ul a {
 padding: 9px 14px;
 border: 1px solid #1e73be;
}
.current {
 color: white;
 padding: 9px 14px;
 border: 1px solid #1e73be;
 background-color: #1e73be;
}

ページネーションの確認

WordPressの管理画面から1ページに表示する最大投稿数を変更して、ページネーションを確認します。

ページネーションの確認1(WordPress)

スタイルの追記

ページネーションが左端に寄っていますので、センタリングします。

ページネーションの確認2(WordPress)

style.cssに、次のコードを追記します。

注意:
WordPress関数(the_posts_pagination)で実装する際に<ul>タグに記載されているjustfy-content-centerを除いて実装した場合に、センタリングが外れてしまいますので、style.cssで調整します。
<ul>タグのjustfy-content-centerを残していれば、センタリングされています。

再読み込みすると、「ページ番号付きリンク」のページネーションが正しく表示されました。ページネーションの完成です。

ページネーションの確認3(WordPress)

自作関数で実装

functions.phpに関数を追加

グローバル変数($wp_query)を使って関数を作ります。wp_queryのプロパティから$max_num_pagesを使ってページの合計数を取得してページネーションを作っていきます。

ページネーションの設定(functions.php、VSC)

paginate linksの基本的な例をコピーして、不要な箇所を削除して関数を作ります。ここでは基本的な例からは’total’ => $wp_query->max_num_pages,をコピペしました。

ページネーションの表示

index.phpに次のように記述して、数字付きページネーションを表示します。

ページネーションの表示1(index.php、VSC)

<?php if(function_exists(“mysite_pagenation”)): ?>
これはmysite_pagenationという関数があった時、というphpの関数です。
サイトを確認すると、

ページネーションの表示2(WordPress)

パラメータの追加

functions.phpのページネーションの記述にパラメータを追加します。パラメータが指定できますので、’prev_text’と’next_text’、’type’を追加しています。

ページネーションの表示3(functions.php、VSC)

‘type’はデフォルトが’plain’となっていますので’list’にして、cssで横並びとします。

ページネーションの表示4(functions.php、VSC)

サイトの確認

ページネーションの表示5(WordPress)

スタイルの調整

ソースを確認すると、「pagination」というクラスの中で「ul」タグと「li」タグで表示しています。

ページネーションの表示6(WordPress)

そこで、次のように調整します。(display:flexで横並びにします。)

スタイルの調整(style.css、VSC)

ページネーションの確認

WordPressの管理画面から1ページに表示する最大投稿数を変更して、ページネーションを確認します。

ページネーションの確認1(WordPress)

再読み込みすると、「ページ番号付きリンク」のページネーションが正しく表示されました。ページネーションの完成です。

ページネーションの確認2(WordPress)