回答編集履歴
3
コメントに対する追記
test
CHANGED
@@ -31,3 +31,27 @@
|
|
31
31
|
?>
|
32
32
|
```
|
33
33
|
|
34
|
+
----
|
35
|
+
コメントに対する追記
|
36
|
+
|
37
|
+
> エリアを複数指定したとき、例えば「東京都」と「神奈川県」で検索した時のパラメーターが 「&area=tokyo,kanagawa」で、複数の名前(ラベル)を表示するのは可能ですか?
|
38
|
+
|
39
|
+
`$_GET['area'])` の値が `tokyo,kanagawa` のようにカンマ区切りで複数の値が入るのであれば、[explode](https://www.php.net/manual/ja/function.explode.php) で分割して [foreach](https://www.php.net/manual/ja/control-structures.foreach.php) 等のループ処理で順に処理する感じでしょうか。
|
40
|
+
|
41
|
+
```
|
42
|
+
<?php
|
43
|
+
if(isset($_GET['area'])) {
|
44
|
+
$products = explode(',', $_GET['area']);
|
45
|
+
|
46
|
+
foreach( $products as $product ){
|
47
|
+
$term = get_term_by('slug', $product, 'area');
|
48
|
+
echo $term->name;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
?>
|
52
|
+
```
|
53
|
+
|
54
|
+
上記では echo で、そのまま表示していますが、 `echo $term->name; ` の部分で、配列に代入して、foreach の処理が終了してから、[implode](https://www.php.net/manual/ja/function.implode.php) で、配列の値を連結して文字列にしてから表示する方法もあります。
|
55
|
+
|
56
|
+
|
57
|
+
|
2
追記修正
test
CHANGED
@@ -10,3 +10,24 @@
|
|
10
10
|
のような感じで、取得できます。
|
11
11
|
( 'タームのスラッグ' や 'タクソノミー' の部分は項目に合わせて変更してください。)
|
12
12
|
|
13
|
+
----
|
14
|
+
|
15
|
+
コメントに対する返信
|
16
|
+
|
17
|
+
> $term = get_term_by('slug', 'tokyo', 'area');
|
18
|
+
> echo $term->name; ?>
|
19
|
+
|
20
|
+
と固定で検索しているので常に表示されると思います。
|
21
|
+
if 文の中にいれて、'tokyo' の部分は、パラメータを参照するのが良いと思います。
|
22
|
+
$product にパラメータの取得結果を入れているのであれば、以下のような感じでしょうか。
|
23
|
+
|
24
|
+
```
|
25
|
+
<?php
|
26
|
+
if(isset($_GET['area'])) {
|
27
|
+
$product = $_GET['area'];
|
28
|
+
$term = get_term_by('slug', $product, 'area');
|
29
|
+
echo $term->name;
|
30
|
+
}
|
31
|
+
?>
|
32
|
+
```
|
33
|
+
|
1
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
> そしてこのパラメーターを使って下記のようなコードを書いたのですが、「検索条件:tokyo、price01」とスラッグで表示され「スラッグ名」で表示されませんでした。
|
2
2
|
|
3
|
-
URL で渡されるのは、「スラッグ」なので、自分で「スラッグ」から「名前」を取得(変換)するコードを書く必要があります。
|
3
|
+
URL で渡されるもの( $_GET で取得する値 ) は、「スラッグ」なので、自分で「スラッグ」から「名前」を取得(変換)するコードを書く必要があります。
|
4
4
|
|
5
5
|
スラッグから名前(ラベル)の取得は、[get_term_by](https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_term_by) を使って、
|
6
6
|
```
|