回答編集履歴

4

追記3\(2016/12/1\)

2016/12/01 01:06

投稿

退会済みユーザー
test CHANGED
@@ -319,3 +319,43 @@
319
319
  ```
320
320
 
321
321
 
322
+
323
+ #追記3(2016/12/1)
324
+
325
+ 店舗情報を`SimpleXMLElement Object`で取得している場合、
326
+
327
+ 単純に`SimpleXMLElement Object`の値を参照しただけでは、`SimpleXMLElement Object`のままになります。
328
+
329
+ このことはvar_dumpすることで簡単に確認できます。
330
+
331
+ ```PHP
332
+
333
+ var_dump($rest->name); // $restはSimpleXMLElement Object
334
+
335
+ $shop_name = $rest->name;
336
+
337
+ var_dump($shop_name); // SimpleXMLElement Objectのまま
338
+
339
+ // object(SimpleXMLElement)#2244 (1) {
340
+
341
+ // [0]=>
342
+
343
+ // string(50) "イタリアンバル アクア 上野公園前店"
344
+
345
+ // }
346
+
347
+ ```
348
+
349
+ よって、代入時にstring型へのキャストが必要です。
350
+
351
+ ```PHP
352
+
353
+ var_dump($rest->name); // $restはSimpleXMLElement Object
354
+
355
+ $shop_name = (string)($rest->name);
356
+
357
+ var_dump($shop_name); // string型にキャストされた
358
+
359
+ // string(50) "イタリアンバル アクア 上野公園前店"
360
+
361
+ ```

3

追記\(2016/11/29\)

2016/12/01 01:06

投稿

退会済みユーザー
test CHANGED
@@ -215,3 +215,107 @@
215
215
 
216
216
 
217
217
  では、ご健闘をお祈りします。
218
+
219
+
220
+
221
+ #追記2(2016/11/29)
222
+
223
+ 以下の前提にしたがい、固定ページに検索条件にしたがった記事一覧を表示するコードです。
224
+
225
+
226
+
227
+ #前提
228
+
229
+ ■固定ページ
230
+
231
+ ・以下の様な見た目のページをつくるものとする
232
+
233
+ ------
234
+
235
+  「店名1」の記事一覧
236
+
237
+  ・「店名1に関する投稿1へのリンク」
238
+
239
+  ・「店名1に関する投稿2へのリンク」
240
+
241
+  ・「店名1に関する投稿3へのリンク」
242
+
243
+  ・「店名1に関する投稿4へのリンク」
244
+
245
+ ------
246
+
247
+ ・固定ページのテンプレートファイルには、ホットペーパーAPIを使用するためのコードが入っていて、APIから店名が取得できるものとする
248
+
249
+
250
+
251
+ ■投稿
252
+
253
+ ・各店舗について書かれている投稿がある
254
+
255
+ ・投稿の「タイトル」か「内容」には必ず「店名」が含まれているものとする
256
+
257
+
258
+
259
+ ■大前提
260
+
261
+ ・APIが表示する「店名」と、投稿に含まれている「店名」は一致するものとする
262
+
263
+
264
+
265
+ #やること
266
+
267
+ 固定ページのテンプレートファイルに以下のコードをはっつけるだけです。
268
+
269
+ **`$shop_name`にはAPIから参照した店舗名を入れてください。**
270
+
271
+
272
+
273
+ ```PHP
274
+
275
+ echo '<h1>「' . $shop_name . '」' . 'の記事一覧</h1>';
276
+
277
+
278
+
279
+ // 検索条件
280
+
281
+ $args = array( 's' => $shop_name ); //投稿のタイトルと内容を$shop_nameで検索する
282
+
283
+
284
+
285
+ // The Query
286
+
287
+ $the_query = new WP_Query( $args );
288
+
289
+
290
+
291
+ // The Loop
292
+
293
+ if ( $the_query->have_posts() ) {
294
+
295
+ echo '<ul>';
296
+
297
+ while ( $the_query->have_posts() ) {
298
+
299
+ $the_query->the_post();
300
+
301
+ echo '<li><a href="' . get_the_permalink() . '">' . get_the_title() . '</a></li>';
302
+
303
+ }
304
+
305
+ echo '</ul>';
306
+
307
+ } else {
308
+
309
+ // no posts found
310
+
311
+ echo "その店舗に該当する記事はありません ( ̄ω ̄;) スマヌ";
312
+
313
+ }
314
+
315
+ /* Restore original Post Data */
316
+
317
+ wp_reset_postdata();
318
+
319
+ ```
320
+
321
+

2

「追記」を「投稿」を使用する形式に書き換え

2016/11/29 02:10

投稿

退会済みユーザー
test CHANGED
@@ -20,6 +20,8 @@
20
20
 
21
21
  #追記(2016/11/27)
22
22
 
23
+ ※「投稿」を使用する形式に書き換えました!
24
+
23
25
 
24
26
 
25
27
  #必読
@@ -56,17 +58,17 @@
56
58
 
57
59
  (A-1)
58
60
 
59
- WordPressの管理画面から、固定ページを新規追加します。
61
+ WordPressの管理画面から、投稿を新規追加します。
60
-
62
+
61
-  管理画面 > 固定ページ > 新規追加
63
+  管理画面 > 投稿 > 新規追加
62
64
 
63
65
 
64
66
 
65
67
  (A-2)
66
68
 
67
- 新規追加した固定ページのスラッグ欄を`detail`に設定し、「公開」ボタンを押します。
69
+ 新規追加した投稿のスラッグ欄を`detail`に設定し、「公開」ボタンを押します。
68
-
70
+
69
-  ※「新規固定ページを追加」画面 に「スラッグ」という欄が存在しない場合は、
71
+  ※「新規投稿を追加」画面 に「スラッグ」という欄が存在しない場合は、
70
72
 
71
73
   画面右上の「表示オプション」をクリックし、
72
74
 
@@ -118,13 +120,13 @@
118
120
 
119
121
  (B-4)
120
122
 
121
- あなたが使用しているテーマのフォルダの中に、`page-detail.php`というテキストファイルをつくります。
123
+ あなたが使用しているテーマのフォルダの中に、`single-post-detail.php`というテキストファイルをつくります。
122
124
 
123
125
 
124
126
 
125
127
  (B-5)
126
128
 
127
- `page-detail.php`の中に以下の記述を書いて、保存します。
129
+ `single-post-detail.php`の中に以下の記述を書いて、保存します。
128
130
 
129
131
  ```PHP
130
132
 
@@ -194,7 +196,7 @@
194
196
 
195
197
  (D-1)
196
198
 
197
- `page-detail.php`のファイルの中にAPIを使用するためのコードを追加します。
199
+ `single-post-detail.php`のファイルの中にAPIを使用するためのコードを追加します。
198
200
 
199
201
  idは`$id`に入っているので、それをAPIに与えてやってください。
200
202
 
@@ -202,7 +204,7 @@
202
204
 
203
205
  (D-2)
204
206
 
205
- `page-detail.php`のファイルの中にAPIから取得した情報を表示するためのHTMLコードを追加します。
207
+ `single-post-detail.php`のファイルの中にAPIから取得した情報を表示するためのHTMLコードを追加します。
206
208
 
207
209
 
208
210
 

1

「追記」を追記

2016/11/27 04:03

投稿

退会済みユーザー
test CHANGED
@@ -15,3 +15,201 @@
15
15
  それから、WordPressを利用しているのであれば、
16
16
 
17
17
  固定ページをつくって、そのページスラッグを`idJ001118068`に設定すれば、万事解決です。
18
+
19
+
20
+
21
+ #追記(2016/11/27)
22
+
23
+
24
+
25
+ #必読
26
+
27
+ `http://localhost:8888/wordpress-8/detail?id=J001118068`のような感じで、
28
+
29
+ WordPressを用いて、idに応じた情報を動的に表示するための実装方法を記述しました。
30
+
31
+
32
+
33
+ 作業手順をAからDまでのステップでまとめてあります。
34
+
35
+
36
+
37
+ 質問者様がどの程度WordPressのことを知っているかわからないので、かなり細かく記述しています。
38
+
39
+
40
+
41
+ 以下の作業を、ひとつも飛ばすことなく、確実に、着実に、実行してください。
42
+
43
+ 長いけれど、最後まで読んでください。
44
+
45
+
46
+
47
+ わからない手順があったら、「(B-3)の○○○というところがわからないよ!」みたいにコメントしてください。
48
+
49
+ 「こうしたい場合どうすんの?」みたいなことがあった場合もコメントしてください。
50
+
51
+ この回答に関することで新規に質問を投稿することはやめてください。
52
+
53
+
54
+
55
+ #A.管理画面での作業
56
+
57
+ (A-1)
58
+
59
+ WordPressの管理画面から、固定ページを新規追加します。
60
+
61
+  管理画面 > 固定ページ > 新規追加
62
+
63
+
64
+
65
+ (A-2)
66
+
67
+ 新規追加した固定ページのスラッグ欄を`detail`に設定し、「公開」ボタンを押します。
68
+
69
+  ※「新規固定ページを追加」画面 に「スラッグ」という欄が存在しない場合は、
70
+
71
+  画面右上の「表示オプション」をクリックし、
72
+
73
+  「スラッグ」という項目にチェックを入れましょう。
74
+
75
+
76
+
77
+ **管理画面での作業は以上です。**
78
+
79
+
80
+
81
+ #B.次に、テーマのテンプレートファイルを設定します。
82
+
83
+
84
+
85
+ (B-1)
86
+
87
+ あなたが使用しているテーマのフォルダを開きます。
88
+
89
+  wp-content > themes > *****
90
+
91
+
92
+
93
+ (B-2)
94
+
95
+ フォルダの中から、`functions.php`というファイルを開きます。
96
+
97
+  ※存在しない場合は、`functions.php`というテキストファイルをつくりましょう。
98
+
99
+
100
+
101
+ (B-3)
102
+
103
+ `functions.php`の中に以下の記述を書いて、保存します。
104
+
105
+ ```PHP
106
+
107
+ function my_query_vars( $public_query_vars ) {
108
+
109
+ return array_merge( $public_query_vars, array( 'id' ) );
110
+
111
+ }
112
+
113
+ add_filter( 'query_vars', 'my_query_vars' );
114
+
115
+ ```
116
+
117
+
118
+
119
+ (B-4)
120
+
121
+ あなたが使用しているテーマのフォルダの中に、`page-detail.php`というテキストファイルをつくります。
122
+
123
+
124
+
125
+ (B-5)
126
+
127
+ `page-detail.php`の中に以下の記述を書いて、保存します。
128
+
129
+ ```PHP
130
+
131
+ <?php get_header(); ?>
132
+
133
+
134
+
135
+ <?php
136
+
137
+ // idを取得します
138
+
139
+ $id = get_query_var('id');
140
+
141
+
142
+
143
+ // idが取得できたことを`echo`で表示して確認します
144
+
145
+ echo "このページはid=[ " . $id . " ]のページです!!!";
146
+
147
+ ?>
148
+
149
+
150
+
151
+ <?php get_footer(); ?>
152
+
153
+ ```
154
+
155
+
156
+
157
+ **テーマのテンプレートファイルの設定は以上です**
158
+
159
+
160
+
161
+ #C.最後に動作確認をします
162
+
163
+
164
+
165
+ (C-1)
166
+
167
+ ブラウザのURL欄に`http://localhost:8888/wordpress-8/detail?id=J001118068`と入力します。
168
+
169
+
170
+
171
+ (C-2)
172
+
173
+ ブラウザに`このページはid=[ J001118068 ]のページです!!!`と表示されることを確認します。
174
+
175
+ これができたら、基本的な実装は完了です! やったね!
176
+
177
+
178
+
179
+ **動作確認は以上です**
180
+
181
+
182
+
183
+
184
+
185
+ 基本的な実装はこれで完了しました。
186
+
187
+
188
+
189
+ #D.APIを使用する応用編
190
+
191
+ APIに使用するコードを私は知らないので、ここは簡略化します。
192
+
193
+
194
+
195
+ (D-1)
196
+
197
+ `page-detail.php`のファイルの中にAPIを使用するためのコードを追加します。
198
+
199
+ idは`$id`に入っているので、それをAPIに与えてやってください。
200
+
201
+
202
+
203
+ (D-2)
204
+
205
+ `page-detail.php`のファイルの中にAPIから取得した情報を表示するためのHTMLコードを追加します。
206
+
207
+
208
+
209
+ **応用編は以上です。**
210
+
211
+
212
+
213
+
214
+
215
+ では、ご健闘をお祈りします。