質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1230閲覧

スマホとPCで別の画像をランダムで表示する方法

pondesu

総合スコア7

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/04/09 00:34

スマホとPCで別の画像をランダムで表示する方法

wordpressでコーポレートサイトを作っています。
表題の件が実装できずに困っています。

ランダムで画像を表示するところまではいけたのですが、
ブラウザ幅によって切り分けるにはどうしたらいいでしょうか?
最悪cssのbackgroundで対処しようかと考えています。

該当のソースコード

php

1 <?php 2 // 配列をランダムに並び替える 3 $random = range( 1,3 ); 4 shuffle( $random ); 5 6 // 表示したい数分、配列の要素の値を取ってくる 7 for( $i=0; $i<=2; $i++ ){ 8 $number[$i+1] = $random[$i]; 9 } 10 ?> 11 12 <?php if($number[1] == 1) :?> 13 <img src="<?php echo get_field('page-slide-image-1');?>" alt="slide1"> 14 <?php elseif($number[1] == 2):?> 15 <img src="<?php echo get_field('page-slide-image-2');?>" alt="slide2"> 16 <?php elseif($number[1] == 3):?> 17 <img src="<?php echo get_field('page-slide-image-3');?>" alt="slide3"> 18 <?php endif ;?> 19 20 <?php if($number[2] == 1) :?> 21 <img src="<?php echo get_field('page-slide-image-1');?>" alt="slide1"> 22 <?php elseif($number[2] == 2):?> 23 <img src="<?php echo get_field('page-slide-image-2');?>" alt="slide2"> 24 <?php elseif($number[2] == 3):?> 25 <img src="<?php echo get_field('page-slide-image-3');?>" alt="slide3"> 26 <?php endif ;?> 27 28 <?php if($number[3] == 1) :?> 29 <img src="<?php echo get_field('page-slide-image-1');?>" alt="slide1"> 30 <?php elseif($number[3] == 2):?> 31 <img src="<?php echo get_field('page-slide-image-2');?>" alt="slide2"> 32 <?php elseif($number[3] == 3):?> 33 <img src="<?php echo get_field('page-slide-image-3');?>" alt="slide3"> 34 <?php endif ;?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2020/04/09 02:52

(質問文は編集できます)PCの画像とスマホの画像がコードのどの部分かわかりません。
pondesu

2020/04/09 03:04

すみません、今のところPCの画像しか表示できていない状態です。 カスタムフィールドに登録した3つのPC用画像を呼び出しています。 <img src="<?php echo get_field('page-slide-image-1');?>" alt="slide1"> <img src="<?php echo get_field('page-slide-image-2');?>" alt="slide1"> <img src="<?php echo get_field('page-slide-image-3');?>" alt="slide1">
guest

回答2

0

ベストアンサー

ブラウザ幅によって切り分けるにはどうしたらいいでしょうか?

PHPだけでは難しいです。ブラウザ幅を基準にするには、HTML/CSSでメディアクエリを使って処理するか、JavaScriptで処理するかどちらかになります。

なので、PHPからは「スマホの画像」「PCの画像」を出力しておいて、メディアクエリで処理することをお勧めします。(すでに回答のあるpicture要素を使った方法がお勧めです)

【メディアクエリの使用 - CSS: カスケーディングスタイルシート | MDN】
https://developer.mozilla.org/ja/docs/Web/CSS/Media_Queries/Using_media_queries

【HTML 5.1のsrcset・sizes属性とpicture要素の使い方 - レスポンシブイメージで画像表示を最適化 - ICS MEDIA】
https://ics.media/entry/13324/

投稿2020/04/09 16:12

kei344

総合スコア69606

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

pictureはどうでしょうか

もうメジャーなブラウザで対応してないのはIEぐらいですし

滅びよIE

投稿2020/04/09 04:49

編集2020/04/09 04:50
KazuhiroHatano

総合スコア7819

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問