work.log

元エンジニアの備忘録的ブログ

WordPressの一覧に表示する記事数をPCとスマホで変える

投稿:

WordPress のメモ書きです。

WordPress のトップページやカテゴリページで表示する記事一覧の数を PC とスマホで変えたいと思ったので調べてみました。

PC だったら 20 件位一覧に表示させた方が都合が良かったりもしますが、それをスマホで見た時は異常に長い表示になってしまうのでイマイチ。スマホで見た時は 10 件位が表示されるようにしたいという具合です。

で、辿り着いたのがこの方法。

テーマファイルの functions.php に追加するだけで PC とスマホの表示件数をわける事ができる。

function mobile_pre_get_posts( $query ) {
	if ( ! is_admin() && wp_is_mobile() && $query->is_main_query() ) {
		$query->set( 'posts_per_page', 10 );
	}
}
add_action( 'pre_get_posts', 'mobile_pre_get_posts' );

pre_get_posts はクエリを取得する前に実行されるフックで、管理面を除くモバイルアクセスのメインクエリに働くような処理になります。

このメインクエリってのがイマイチ理解出来てない部分もありますが、一覧ページだとかカテゴリページだとかの記事データを取得するクエリの事だと思う。

is_main_query() の判定を入れないと最新記事とか関連記事とかで表示している部分にも影響するからそういう事だと思う。

と、こんな具合に簡単にできました。

おすすめのVPSサーバ

  • OSが選べる
  • VPS同士でLANが組める
  • 複数台構成向き

このブログで使っています。

  • 転送量が多いサービスに
  • 借りてるのは3年間一度もdown無し!

よく見られている記事

  • 本日
  • 週間
  • 月間