teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記と修正

2017/01/17 19:26

投稿

manabufukai
manabufukai

スコア700

answer CHANGED
@@ -1,10 +1,10 @@
1
- タクソノミー名やスラッグのみを取得したい場合
1
+ タクソノミー名(正確にはターム名)やスラッグのみを取得したい場合
2
2
  `get_the_taxonomies()`よりも`get_the_terms( $id, タクソノミー名 )`のほうが適切ではないかと思います。
3
3
  例えば
4
4
  ```PHP
5
5
  $terms = get_the_terms($post->ID,'タクソノミー名');
6
6
  ```
7
- とするとその記事に紐付けられているタクソノミー情報がすべて取得できます。
7
+ とするとその記事に紐付けられているター情報がすべて取得できます。
8
8
  この情報はオブジェクトで返ってくるため
9
9
  `var_dump($terms)`とでもすれば取得されたオブジェクトの内容をまず確認するのが良いでしょう。
10
10
 
@@ -20,4 +20,8 @@
20
20
  echo '<a class="クラス名" href="', esc_url( home_url('/') ), 'タクソノミー名/', esc_attr($term->slug) ,'/" title="カテゴリー:', $term_name ,'">', $term_name ,'</a>';
21
21
  }
22
22
  }
23
- ```
23
+ ```
24
+ ####余談
25
+ タクソノミー: カテゴリーやタグなどの「分類」そのものを指します
26
+ ターム  : タクソノミー下に設定した各カテゴリーなどを指します。
27
+ ※ホーム>カテゴリー(←これがタクソノミー)>ブログ(←これがターム)

1

誤記

2017/01/17 19:26

投稿

manabufukai
manabufukai

スコア700

answer CHANGED
@@ -5,17 +5,19 @@
5
5
  $terms = get_the_terms($post->ID,'タクソノミー名');
6
6
  ```
7
7
  とするとその記事に紐付けられているタクソノミー情報がすべて取得できます。
8
+ この情報はオブジェクトで返ってくるため
8
- `var_dump($terms)`とでもすれば取得されたオブジェクトの内容が表示されるので
9
+ `var_dump($terms)`とでもすれば取得されたオブジェクトの内容をまず確認するのが良いしょう。
10
+
9
11
  そこから取得したいデータを出力したい形状で出力すればOKです。
10
-
12
+ また、オブジェクトや配列は`foreach`などでループで処理するのが基本かなと。
11
13
  ```PHP
12
14
  $terms = get_the_terms($post->ID,'タクソノミー名');
13
15
  if($terms){
14
16
  foreach ($terms as $term) {
15
17
  //Ex. ターム名なら
16
18
  $term_name = esc_html($term->name);
17
- //Ex. リンク付けたければ
19
+ //Ex. リンク付けたければこんな感じでも可
18
- echo '<a class="クラス名" href="', $home_dir, 'タクソノミー名/', esc_attr($term->slug) ,'/" title="カテゴリー:', $term_name ,'">', $term_name ,'</a>';
20
+ echo '<a class="クラス名" href="', esc_url( home_url('/') ), 'タクソノミー名/', esc_attr($term->slug) ,'/" title="カテゴリー:', $term_name ,'">', $term_name ,'</a>';
19
21
  }
20
22
  }
21
23
  ```