【WordPress】Cocoonでのページネーション変更
このサイトのトップページの下部にページ番号のリンクがあります。
このページ番号のリンクがその上の「次のページ」のボタンの幅より短かったので、なんとなくデザイン的に不満でした。
なので今回はこのページ番号のリンクの省略表示の処理を変更して多くのページ番号を表示するようにします。
paginate_links
ページ番号リンクの生成を調べたところ、下記のページが参考になりました。
https://elearn.jp/wpman/function/paginate_links.html
上記によるとWordPressにはじめから用意されているファイル/wp-includes/general-template.php
にpaginate_linksというページ番号表示(ページネーションというらしいです)という機能で生成されているそうです。
早速上記のファイルを編集してmid_size
の値を変更しました。
mid_size
は自ページ除いて何ページ分のページリンクを表示するかを設定する値です。
デフォルトでは2ページ分の表示なので、現在の表示と同じでした。この値を5に変えて保存してページをリロードしたところ、表示は変わっていませんでした。
Cocoon-master
なぜ変わらないのか考えてみたところ、現在Cocoonのテーマを使用しているのでテーマ自体の設定が上書きされて、設定した値が反映されていないのではないかと思いました。
なので、サーバに接続してgrepでpaginate_links
の値をテーマで使っている箇所がないか探しました。
root@152bc757f38d:/var/www/html/wp-includes# grep paginate_links -rl /var/www/html/
/var/www/html/wp-content/themes/cocoon-master/tmp/pagination.php
/var/www/html/wp-content/themes/cocoon-master/pagination.php
/var/www/html/wp-includes/link-template.php
/var/www/html/wp-includes/general-template.php
/var/www/html/wp-admin/includes/deprecated.php
/var/www/html/wp-admin/includes/media.php
/var/www/html/wp-admin/includes/nav-menu.php
/var/www/html/wp-admin/css/list-tables.css
/var/www/html/wp-admin/css/list-tables-rtl.css
すると、予想通りcocoon-masterのテーマでpagination.php
のファイルがありました。
このままファイルを編集することもできますが、テーマ内のファイルなのでWordPressの設定から編集することもできます。
ダッシュボードから「外観」→「テーマの編集」を選び、「編集するテーマを選択」を「Cocoon」にして、pagination.phpを選択します。
(pagination.phpは2つありますが、tmp/pagination.phpを変更しました)
pagination.phpの中にmid_size
の項目があるので、この値を変更しました。(とりあえず私は5に設定しました)
確認
値を変更・保存してトップページを確認すると、1~5のページ番号が表示されていました。 しかし、現在はまだ記事数が少ないので最大でも5ページ分しかありません。
きちんと設定した項目が反映されているか確認するために、1ページあたりの表示記事数を少なくしてページ数を増やしてみました。
ダッシュボードから「設定」→「表示設定」を選び、「1ページに表示する最大投稿数」がデフォルトで10になっているので、これより少ない値にすると総ページ数が増えます。
すると無事に設定されているページ数が表示され、それ以降は省略表示されていることが確認できました。
後記
実はこの編集を行うのに、直接phpファイルを設定する必要があると思い、前回vimの導入などをしたのですが、結果的にvimがなくても設定することができました。
今回は自分の環境なのでいいですが、実務ではソフトを導入できなかったりする場面もあるので、今使える方法で出来ないのか確認することも必要だと思いました。
※追記:今回の修正方法はCocoonの親テーマを変更するので、親テーマの更新を適用するたびにもとに戻ってしまいます。 修正箇所は少ないので楽なのですが、更新があるたびに修正する手間がかかってしまいます。
子テーマの修正でページネーションの変更を実現できればいいのですが、方法が不明なのでご教授頂ければ嬉しいです。