回答編集履歴

1

get_fieldの使い方と調査方法について、回答を追記しました。

2019/06/01 13:49

投稿

Eggpan
Eggpan

スコア2665

test CHANGED
@@ -3,3 +3,77 @@
3
3
  `get_field`に変えてみてください。
4
4
 
5
5
  str_replaceの使い方としては合ってそうです。
6
+
7
+
8
+
9
+ ***
10
+
11
+ 追記
12
+
13
+ `get_field` の場合、チェックボックスで複数指定している場合は配列でデータが帰ってきます。
14
+
15
+ なので、下記のようなやり方で目的の出力は可能かと思います。
16
+
17
+ ```PHP
18
+
19
+ $field = get_field('syusaisya');
20
+
21
+ $str = implode('<br>', $field);
22
+
23
+ echo $str;
24
+
25
+ ```
26
+
27
+
28
+
29
+ ***
30
+
31
+ 蛇足までに調査のやり方の例を記載しておきます。
32
+
33
+
34
+
35
+ 今回の質問は結果だけみればstr_replaceは無関係なのですが、
36
+
37
+ 思った結果にならない場合の調査の仕方は覚えておいて損はないと思うので。
38
+
39
+
40
+
41
+
42
+
43
+ 今回の場合はまず、`str_replace()`がおかしい、と思ったはずです。
44
+
45
+ なら、`str_replace()`の前後を`var_dump()`等で出力してみましょう。
46
+
47
+ ```PHP
48
+
49
+ $str = the_field('syusaisya');
50
+
51
+
52
+
53
+ echo "before:";
54
+
55
+ var_dump($str);
56
+
57
+ $str = str_replace(',', '<br>', $str);
58
+
59
+ echo "<br>after:";
60
+
61
+ var_dump($str);
62
+
63
+ ```
64
+
65
+
66
+
67
+ 結果は
68
+
69
+ before:NULL
70
+
71
+ after:NULL
72
+
73
+ となり、この時点で「変換前の`$str`がおかしい」となるはずです。
74
+
75
+
76
+
77
+ このあとは`the_field`の使い方を調べていくうちに`get_field`にたどり着く、あるいは、
78
+
79
+ 「WordPressのthe_field関数でカスタムフィールドの値が取得できない」という質問をすることになるでしょう。