回答編集履歴

1

サンプルソース追記

2015/05/11 13:20

投稿

Yoh
Yoh

スコア94

test CHANGED
@@ -1,5 +1,159 @@
1
- ```lang-<ここに言語入力>
1
+ 判別「ウィンドウサイズ」とするか、「デバイス」とするかで方法が変わってきます。
2
2
 
3
+
4
+
5
+
6
+
7
+ ウィンドウサイズでの判定の場合は、JSを使うしかないと思います。
8
+
9
+ JSはあまり得意ではないので冗長的な書き方になってしまっているかもしれませんが、
10
+
11
+
12
+
13
+ ```lang-Javascript
14
+
15
+
16
+
17
+ var imgControl_small = function() {
18
+
19
+ $('.thumbnail img').each(function() {
20
+
21
+ $(this).attr('src',$(this).attr('src').replace('300x225.', '300x150.'));
22
+
3
- コード
23
+ });
24
+
25
+ }
26
+
27
+
28
+
29
+ var imgControl_large = function() {
30
+
31
+ $('.thumbnail img').each(function() {
32
+
33
+ $(this).attr('src',$(this).attr('src').replace('300x150.', '300x225.'));
34
+
35
+ });
36
+
37
+ }
38
+
39
+
40
+
41
+ $(window).on('resize', function() {
42
+
43
+ var winW = $(window).width();
44
+
45
+ if(winW < 768) {
46
+
47
+ imgControl_small();
48
+
49
+ } else {
50
+
51
+ imgControl_large();
52
+
53
+ }
54
+
55
+ });
4
56
 
5
57
  ```
58
+
59
+ 多分こんな感じで行けると思います。
60
+
61
+ ただし、アップロードする画像のサイズや拡張子を必ず同じにしなければなりません。
62
+
63
+ (比率が変わると画像ファイル名が変わるので・・)
64
+
65
+
66
+
67
+ デバイスのみで判別する場合
68
+
69
+ スマホ、タブレットを判別すればよいのでPHPの条件判別だけでできると思います。
70
+
71
+ (PCではウィンドウをリサイズしても画像は変わりません)
72
+
73
+ functions.php
74
+
75
+ ```lang-PHP
76
+
77
+ add_image_size('custom-size', 300, 225, true);
78
+
79
+ add_image_size('custom-size2', 300, 150, true);
80
+
81
+
82
+
83
+ # ブラウザ情報取得
84
+
85
+ $agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";
86
+
87
+
88
+
89
+ function is_iphone() {
90
+
91
+ global $agent;
92
+
93
+ return( preg_match('/iPhone/',$agent) || preg_match('/iPod/',$agent));
94
+
95
+ }
96
+
97
+
98
+
99
+ function is_android() {
100
+
101
+ global $agent;
102
+
103
+ return( preg_match('/Android/',$agent) && preg_match('/Mobile/',$agent));
104
+
105
+ }
106
+
107
+
108
+
109
+ function is_tablet() {
110
+
111
+ global $agent;
112
+
113
+ return( preg_match('/iPad/',$agent) || (preg_match('/Android/',$agent) && !preg_match('/Mobile/',$agent)));
114
+
115
+ }
116
+
117
+
118
+
119
+ function is_smartphone() {
120
+
121
+ return(
122
+
123
+ is_iphone() ||
124
+
125
+ is_android() ||
126
+
127
+ is_tablet()
128
+
129
+ );
130
+
131
+ }
132
+
133
+ ?>
134
+
135
+
136
+
137
+ ```
138
+
139
+
140
+
141
+ index.phpなど
142
+
143
+ ```lang-PHP
144
+
145
+ <?php
146
+
147
+ if(is_smartphone()) {
148
+
149
+ the_post_thumbnail('custom-size');
150
+
151
+ } else {
152
+
153
+ the_post_thumbnail('custom-size2');
154
+
155
+ }
156
+
157
+ ?>
158
+
159
+ ```