2021.06.17
2025.09.03
WordPressのカスタム投稿でPC・スマホごとに表示件数を切り替える方法
- 東京のホームページ制作会社|ブラボーウェブ
- ホームページ制作 コラム
- WordPressのカスタム投稿でPC・スマホごとに表示件数を切り替える方法

WordPressでレスポンシブ対応のホームページを制作する際、PCとスマートフォンで投稿の表示件数を変える方法をご紹介します。
基本的な方法(wp_is_mobileを利用)
WordPressには標準で wp_is_mobile() という関数があり、ユーザーがスマートフォンまたはタブレットからアクセスしているかどうかを判別できます。
以下のコード例では、
- スマホ/タブレット → 20件
- PC → 30件
を表示する設定にしています。
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if ( wp_is_mobile() ) {
$num = 20; // スマホ・タブレット
} else {
$num = 30; // PC
}
$args = array(
'paged' => $paged,
'post_type' => 'ポストタイプ', // カスタム投稿タイプを指定
'posts_per_page' => $num,
);
$my_query = new WP_Query($args);
if ($my_query->have_posts()) :
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<div>
<a href="<?php the_permalink(); ?>">
<div>
<!-- 表示したい内容 -->
</div>
</a>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
ここで使っている wp_is_mobile() は スマートフォンとタブレットをまとめてモバイル扱いします。
スマホとタブレットを分けたい場合
wp_is_mobile() ではスマホとタブレットを区別できません。もし「スマホは20件」「タブレットは25件」「PCは30件」と分けたい場合は、独自に functions.php に判定関数を追加します。
// functions.php に追記
function is_smartphone() {
$ua = $_SERVER['HTTP_USER_AGENT'];
return (strpos($ua, 'iPhone') !== false ||
(strpos($ua, 'Android') !== false && strpos($ua, 'Mobile') !== false));
}
function is_tablet() {
$ua = $_SERVER['HTTP_USER_AGENT'];
return ((strpos($ua, 'iPad') !== false) ||
(strpos($ua, 'Android') !== false && strpos($ua, 'Mobile') === false));
}
呼び出し側では以下のように条件分岐できます。
if ( is_smartphone() ) {
$num = 20; // スマホ
} elseif ( is_tablet() ) {
$num = 25; // タブレット
} else {
$num = 30; // PC
}
まとめ
- PCとスマホで件数を変えるだけなら wp_is_mobile() が簡単
- スマホ/タブレットをさらに区別したい場合は独自関数を用意
表示件数を調整することで、ユーザー体験を最適化できます。特にモバイルではスクロール量が増えるため、件数を少なめにするのがおすすめです。

- 監修者
- 田邉 文章 Fumiaki Tanabe
株式会社フィールビー
CEO。企業の価値を最大化する戦略に特化したブランディングとマーケティングのエキスパート。インフラ関連企業や大手製造メーカーから中小企業に至るまで、幅広い業界でのWebブランディング実績多数。

お見積
お問い合わせ
Contact Us!