Title: 現在のタームのカスタムフィールド値を取得したい
Last modified: 2016年7月30日

---

# 現在のタームのカスタムフィールド値を取得したい

 *  解決済 [mae-tel](https://ja.wordpress.org/support/users/mae-tel/)
 * (@mae-tel)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/)
 * お世話になっております。
    Advanced Custom Fieldsプラグインを使用しています。
 * 現在表示中の記事のタームを取得し、同じタームを持つ別のカスタム投稿タイプの記事
   のカスタムフィールド値を取得し、シャッフルしてランダムにひとつだけ表示したいです。
 * ややこしくてどうしていいかわからずにいます・・・汗
 * ①現在表示中の記事のステータス
    └タクソノミー　[動物の種類] └ターム　　　　[子犬]
   └カスタム投稿タイプ　[生き物]
 * ②値を取得したい記事群のステータス
    └タクソノミー　[上記同じ] └ターム　　　　[
   上記同じ] └カスタム投稿タイプ　[ペット] └カスタムフィールド値(画像)　[子犬の写真]
 * 現在のターム（子犬）は、取得して変数($dog)に入れています。
    ①の記事を表示して
   いるときに、②の子犬の写真を取得し、シャッフルしてランダムにひとつだけ表示した
   いです。
 * よろしければ、ご教授お願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)

 *  [kuck1u](https://ja.wordpress.org/support/users/kuck1u/)
 * (@kuck1u)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176356)
 * こんにちわ、mae-telさん
 * 簡単に書いてみました。説明はコードの所にコメントで記載しています。
    正直、関数
   化かクラス化とかした方が扱いやすくなると思いますので、ご自由にカスタマイズして
   ください。
 *     ```
       // ポストタイプを指定
       $posttype  = 'post';
       // タームをごにょごにょ
       $taxonomy  = 'category';
       $types     = get_the_terms( $post->ID, $taxonomy );
       $typenames = array();
       foreach( $types as $type ){
           array_push( $typenames, $type->slug );
       }
   
       // 記事の取得条件を設定
       $args = array(
               'showposts' => '1',
               'orderby'   => 'rand',
               'post_type' => $posttype,
               'tax_query' => array(
                                   array(
                                           'taxonomy' => $taxonomy,
                                           'terms'    => $typenames,
                                           'field'    => 'slug',
                                           'operator' => 'IN'
                                       ),
                                   'relation' => 'AND'
                               ),
           );
       // 変数を破棄
       unset( $posttype );
       unset( $taxonomy );
       unset( $types );
       unset( $typenames );
       unset( $type );
   
       // 記事を表示する為のサブループ
       query_posts($args);
       if ( have_posts() ) : while ( have_posts() ) : the_post();
       // 好きにコーディングしてください
       the_title();
       endwhile; else:
       // 記事がない場合
       // 好きにコーディングしてください
       endif;
       // クエリーをリセット
       wp_reset_query();
   
       // 変数を破棄
       unset( $args );
       ```
   
 *  [kuck1u](https://ja.wordpress.org/support/users/kuck1u/)
 * (@kuck1u)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176357)
 * 自分でコード書いといてあれですけど、query_posts 使わないで get_posts を使って
   foreach でループさせればいいかもです。query_posts の方がメインループの書き方と
   同じで分かり易いので好きなんですけどね。
 *  トピック投稿者 [mae-tel](https://ja.wordpress.org/support/users/mae-tel/)
 * (@mae-tel)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176368)
 * KUCKLU様、ご回答ありがとうございます！
 * ご教授いただいたコードを、参考に(そのまま)させていただきました。
 * 取得したタームに属する記事のカスタムフィールドに、画像は入っているのですが、
   
   入っていない場合の `<li></li>` が表示されてしまいます。 カスタムフィールドの取得
   の仕方が問題なのでしょうか？
 *     ```
       <?php
       $posttype  = 'ポストタイプ名';
       $taxonomy  = 'タクソノミー名';
       $types     = get_the_terms( $post->ID, $taxonomy );
       $typenames = array();
       foreach( $types as $type ){
           array_push( $typenames, $type->slug );
       }
       ?>
       <?php
       $args = array(
               'showposts' => '1',
               'orderby'   => 'rand',
               'post_type' => $posttype,
               'tax_query' => array(
                                   array(
                                           'taxonomy' => $taxonomy,
                                           'terms'    => $typenames,
                                           'field'    => 'slug',
                                           'operator' => 'IN'
                                       ),
                                   'relation' => 'AND'
                               ),
           );
       // 変数を破棄
       unset( $posttype );
       unset( $taxonomy );
       unset( $types );
       unset( $typenames );
       unset( $type );
       ?>
       <?php
       // 記事を表示する為のサブループ
       query_posts($args);
       if ( have_posts() ) : while ( have_posts() ) : the_post();?>
       <img src="<?php the_field('取得したいカスタムフィールドキー・返り値はURL)'); ?>" alt="" />
       <?php endwhile; else: ?>
       // 記事がない場合
       // 好きにコーディングしてください
       <li></li>
       <?php endif; ?>
       <?php
       // クエリーをリセット
       wp_reset_query();
   
       // 変数を破棄
       unset( $args );
       ?>
       ```
   
 *  [kuck1u](https://ja.wordpress.org/support/users/kuck1u/)
 * (@kuck1u)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176373)
 * `<li></li>`が表示されるということは記事が取得できていないです。
    なので、カスタムフィール
   は関係がありません。
 * query_posts($args); の前で var_dump($args);としてみて、中身が正しく入っているか
   確認してみてください。
 *  トピック投稿者 [mae-tel](https://ja.wordpress.org/support/users/mae-tel/)
 * (@mae-tel)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176383)
 * KUCKLU様
 * すみません…。
    完全に見間違いをしてしまっていて、 `<li></li>` の出力はされてい
   ませんでした。 結果的に、何も出力されていない状態でした。申し訳ありません。。
 * var_dump($args);を入れてみた結果、以下が表示されました。
    `array(4) { ["showposts"]
   => string(1) "1" ["orderby"]=> string(4) "rand" ["post_type"]=> string(16) "カスタム
   ポスト名" ["tax_query"]=> array(2) { [0]=> array(4) { ["taxonomy"]=> string(20)"
   タクソノミ―名" ["terms"]=> array(1) { [0]=> string(11) "タームのスラッグ" } ["
   field"]=> string(4) "slug" ["operator"]=> string(2) "IN" } ["relation"]=> string(
   3) "AND" } }`
 * タームやカスタム投稿タイプやタクソノミはちゃんと取得できているよう(?)ですが・・・
 *  [kuck1u](https://ja.wordpress.org/support/users/kuck1u/)
 * (@kuck1u)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176386)
 * > `<li></li>`
   >  の出力はされていませんでした。 結果的に、何も出力されていない状態
   > でした。申し訳ありません。
 * そうなると記事は取得できていると思います。
    試しに the_title() などでちゃんと
   取得できているか確認してみるといいかもしれません。
 *  トピック投稿者 [mae-tel](https://ja.wordpress.org/support/users/mae-tel/)
 * (@mae-tel)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176393)
 * KUCKLU様、度々のご教授ありがとうございます。
 * the_title();で出力してみたところ、タームに属する記事はちゃんと取得できているよう
   です。
    ブラウザを更新するたびに違うタイトルがひとつずつランダムで表示されてい
   ます。
 * となるとやはりカスタムフィールドの出力でしょうか…？汗
    画像のカスタムフィールド
   は他の出力方法があるのでしょうか？ 何度もすみません…＞＜
 *  [kuck1u](https://ja.wordpress.org/support/users/kuck1u/)
 * (@kuck1u)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176394)
 * ACF での the_field 関数の使い方が間違っていたりしませんでしょうか。
    以下のコード
   で試してみていただけますでしょうか？ ※hogehoge の部分はご自身で設定した値に変更
   してください。
 * `<img src="<?php the_field( 'hogehoge', $post->ID ); ?>" alt="" />`
 * 公式ドキュメント
    [ACF { the_field()](http://www.advancedcustomfields.com/resources/functions/the_field/)
 *  トピック投稿者 [mae-tel](https://ja.wordpress.org/support/users/mae-tel/)
 * (@mae-tel)
 * [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176395)
 * KUCKLU様、
 * $post->IDを追加しなければいけなかったのですね・・・！
    無事、表示することができ
   ました。
 * KUCKLU様、大変お世話になりました！
    解決に導いていただき、ありがとうございました。

9件の返信を表示中 - 1 - 9件目 (全9件中)

 トピック「現在のタームのカスタムフィールド値を取得したい」には新たに返信すること
はできません。

## タグ

 * [カスタムフィールド](https://ja.wordpress.org/support/topic-tag/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89/)
 * [ターム](https://ja.wordpress.org/support/topic-tag/%e3%82%bf%e3%83%bc%e3%83%a0/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 9件の返信
 * 2人の参加者
 * 最後の返信者: [mae-tel](https://ja.wordpress.org/support/users/mae-tel/)
 * 最後の活動: [12年、 4ヶ月前](https://ja.wordpress.org/support/topic/%e7%8f%be%e5%9c%a8%e3%81%ae%e3%82%bf%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%e5%80%a4%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f/#post-176395)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
