ブログ

iPhoneでPC版が表示されるときの原因と対処法【WordPress救急隊】

最終更新日 2025年10月10日

iPhoneでパソコンサイトが表示される?UA判定の古いテーマに潜む落とし穴【WordPress救急隊】

最近、「iPhoneでアクセスしたのにパソコンサイトが表示される」という相談が増えています。
実はこの症状、テーマ内に古い is_mobile() 関数が残っていることが原因であるケースが少なくありません。

古いテーマに埋め込まれたUA判定コードとは

WordPressテーマの中には、ユーザーエージェント(UA)をもとにスマホ・PCを判定して、
それぞれ別のデザインを出し分ける仕組みを持つものがあります。

ところが、2010年代のテーマによく見られる以下のようなコードは、 最新のiPhoneでは正常に動作しません。


// ユーザーエージェントを判定するための関数
function is_mobile() {

  $match = 0;

  $ua = array(
    'iPhone',
    'iPod',
    'Android.*Mobile',
    'Windows.*Phone',
    'dream',
    'CUPCAKE',
    'BlackBerry',
    'webOS',
    'incognito',
    'webmate'
  );

  $pattern = '/' . implode('|', $ua) . '/i';
  $match   = preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);

  if ($match === 1) {
    return TRUE;
  } else {
    return FALSE;
  }

}

このコードは一見問題なさそうですが、
iOS17以降(特にiPhone15・16)ではSafariのUA文字列が「Macintosh + Mobile」となり、
上記の条件にマッチせず「PCとして認識」されてしまいます。

Androidでは正常に見えてしまうため、気づきにくい

さらに厄介なのは、制作者自身がAndroid端末を使用している場合です。
Androidでは正しくモバイル判定がされるため、制作者の環境では問題なく表示されます。
その結果、「自分では正常に見えるのに、クライアントやユーザーから“iPhoneでPC表示になっている”と指摘される」
という事態が起きやすくなっています。

このような環境差によるトラブルは、テーマが古いほど発生リスクが高くなります。

最新版に書き換えることで解決

以下のように関数を修正することで、
最新iOSでも確実にモバイル判定が行えるようになります。


// iOS17以降対応版 is_mobile() 関数
function is_mobile() {
  $ua = $_SERVER['HTTP_USER_AGENT'];

  // 通常のモバイルデバイス
  $pattern = '/iPhone|iPod|Android.*Mobile|Windows.*Phone|BlackBerry|BB10|webOS|Silk|Kindle|dream|CUPCAKE|incognito|webmate/i';
  if (preg_match($pattern, $ua)) {
    return true;
  }

  // iOS17以降: Macintosh + Mobile のパターン
  if (preg_match('/Macintosh/i', $ua) && preg_match('/Mobile/i', $ua)) {
    return true;
  }

  return false;
}

この修正版を functions.php の古い記述と差し替えるだけで、 iPhone15以降でもスマホ版が正しく表示されるようになります。

WordPress救急隊ができること

テーマやプラグインのアップデートが進む中、 こうした「旧テーマ由来のコード不具合」は増加しています。
WordPress救急隊では、

・PHP8対応エラーの修正
・スマホ判定・画像切替の不具合対応
・SiteGuardやセキュリティ設定によるリダイレクトトラブル
・The Events Calendarなどのカスタマイズ調整

など、古いテーマ・複雑なサイト構成でも現場レベルで復旧対応いたします。

WordPressの表示不具合でお困りですか?

「iPhoneでレイアウトが崩れる」「スマホサイトが出ない」など、どんな症状でもまずはご相談ください。

WordPress救急隊に問い合わせる

まとめ

UA判定のコードは一見地味ですが、テーマ全体の挙動に直結する重要な部分です。
古いテーマをそのまま使い続けている場合、 知らぬ間にiPhoneでPCサイトが表示されるリスクがあります。

しかも、制作者がAndroidで確認している場合は、問題に気づかないことが多いのです。

functions.phpを点検し、必要に応じて修正版へ書き換えることが、 モバイルユーザーの快適な閲覧体験を守る第一歩です。

トラブル対応・調査依頼は「WordPress救急隊」まで。

関連記事

ページ上部へ戻る