Title: 別のカスタム投稿タイプに共通のタクソノミーを設定している記事内容を取得
Last modified: 2018年1月10日

---

# 別のカスタム投稿タイプに共通のタクソノミーを設定している記事内容を取得

 *  解決済 [natsu85](https://ja.wordpress.org/support/users/natsu85/)
 * (@natsu85)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/)
 * お世話になっております。
 * カスタム投稿タイプaとbがあり、タクソノミーzzzは両方で指定できるようにしており
   ます。
 * aの個別ページにbの同じzzzのタームを設定している場合のみ、一覧表示させたいと思
   っております。
    一覧表示させる際にbの個別ページにカスタムフィールドを使用して
   おり、そのカスタムフィールドに入力されている文字列を表示させるようにしております。
 * 下記はカスタム投稿aの個別ページ、メインループ内に記載しております。
 *     ```
       <?php
           global $post;
           $term = get_the_terms($post->ID, 'zzz');
           $term = reset($term);
           $args = array(
             'numberposts' => -1,
             'post_type' => 'b',
             'taxonomy' => 'zzz',
             'term' => $term->slug,
           );
           $list = get_posts($args); if($list) : ?>
   
           <div>
             <ul>
               <?php
               foreach( $list as $post ):
               setup_postdata( $post );
               ?>
               <li><?php
                 $name = get_field('name');
                 if($name){ ?><a href="<?php the_permalink(); ?>"><?php echo $name; ?></a><?php } ?></li>
               <?php endforeach; ?>
             </ul>
           </div>
           <?php wp_reset_postdata(); endif; ?><?php endif; ?>
       ```
   
 * 上記で同じzzzを設定しているbのカスタムフィールド入力文字列は表示されますが、zzz
   を設定していない場合がエラーとなってしまいます。
    設定していない場合は表示をしない
   ようにしたいと思っております。
 * 分かりにくい説明になってしまって申し訳ございませんが、ご教授よろしくお願い致し
   ます。

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

 *  [manbo](https://ja.wordpress.org/support/users/manbo/)
 * (@manbo)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224090)
 * >エラーとなってしまいます
    どのようなエラーなのか具体的に書いた方が良いでしょう。
 *  トピック投稿者 [natsu85](https://ja.wordpress.org/support/users/natsu85/)
 * (@natsu85)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224092)
 * manbo様
 * お返事ありがとうございました。
 * エラー内容の記載を忘れておりました。ご指摘ありがとうございました。
    下記エラー
   内容です。
 * reset() expects parameter 1 to be array
 * よろしくお願い致します。
 *  [manbo](https://ja.wordpress.org/support/users/manbo/)
 * (@manbo)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224095)
 * タクソノミー名もターム名もzzzなのでしょうか？または混同していますか？
 * エラーは`$term`の中身が配列ではないまたは空だからでしょう。
    未設定ということ
   は空だと思うので
 *     ```
       if($term) {
       	$term = reset($term);
       }
       ```
   
 * と、でもしておいたらどうでしょう？
 * またタクソノミーの場合は`tax_query`を使いましょう。
 * [テンプレートタグ/get posts 4.9 タクソノミーパラメータ](https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_posts#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF)
 * タームがzzz決め打ちなら`'term' => $term->slug,`とする必要性は無いのではないで
   しょうか。
    スラッグもzzzなら`'term' => 'zzz'`？かな？
 *  トピック投稿者 [natsu85](https://ja.wordpress.org/support/users/natsu85/)
 * (@natsu85)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224099)
 * manbo様
 * お返事ありがとうございました。
 * 説明不足で申し訳ございません。
    タクソノミーはzzz タームは複数ありますが必ず設定
   するわけではないため、設定していない（空）記事もあります。
 * タクソノミーzzzの中のタームzzz-aというタームを設定している、aの個別ページにbの
   カスタム投稿タイプ記事の情報を表示させている状態になります。
 * エラーになる記事はタクソノミーzzzを設定していない記事になり、
    エラー表示と共に、
   bの記事全てが表示されてしまいますが、設定していない場合は表示されないようにした
   いと思っております。
    -  この返信は8年、 9ヶ月前に[natsu85](https://ja.wordpress.org/support/users/natsu85/)
      が編集しました。
    -  この返信は8年、 9ヶ月前に[natsu85](https://ja.wordpress.org/support/users/natsu85/)
      が編集しました。
 *  [manbo](https://ja.wordpress.org/support/users/manbo/)
 * (@manbo)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224109)
 * あ、ちょっと勘違いでした。
    では全部ifで囲ってしまえば良いと思います。
 *     ```
       <?php
           global $post;
           $term = get_the_terms($post->ID, 'zzz');
       if($term) {
           $term = reset($term);
           $args = array(
             'numberposts' => -1,
             'post_type' => 'b',
             'taxonomy' => 'zzz',
             'term' => $term->slug,
           );
           $list = get_posts($args); if($list) : ?>
   
           <div>
             <ul>
               <?php
               foreach( $list as $post ):
               setup_postdata( $post );
               ?>
               <li><?php
                 $name = get_field('name');
                 if($name){ ?><a href="<?php the_permalink(); ?>"><?php echo $name; ?></a><?php } ?></li>
               <?php endforeach; ?>
             </ul>
           </div>
           <?php wp_reset_postdata(); endif; ?>
       <?php } ?>
       ```
   
 *  トピック投稿者 [natsu85](https://ja.wordpress.org/support/users/natsu85/)
 * (@natsu85)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224113)
 * manbo様
 * お返事ありがとうございます。
 * 申し訳ございません！
    頂いたコードはすでに試してみたのですが、これで設定してい
   ない記事に表示されなくはなるのですが、設定している記事では、設定しているターム
   のみ表示でなくbの全ての記事情報が表示されてしまうのです。。。
 *  [manbo](https://ja.wordpress.org/support/users/manbo/)
 * (@manbo)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224116)
 * カスタム投稿 a でターム zzz-a を設定したページに同じタームを持つカスタム投稿 
   b の投稿を表示する
 * カスタム投稿 a でタームを設定しなければカスタム投稿 b のページを表示させない
 * この認識で合ってますか？
 * 現状、ifで囲うと カスタム投稿 b の投稿が全て表示される？
 * 全ての投稿が表示される時に`$term`の中は何が入ってますか？
    何も入っていなけれ
   ばカスタム投稿 b のページは出てこないはずなので。
 *  トピック投稿者 [natsu85](https://ja.wordpress.org/support/users/natsu85/)
 * (@natsu85)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224124)
 * manbo様
 * お返事ありがとうございます。
 * はい。仰っているとおりです！
 * `if($term) { ~ <?php } ?>`
    上記ifで囲むと、設定していないカスタム投稿a個別ページ
   では、カスタム投稿bの一覧は表示されませんが、 設定している投稿a個別ページでは、
   カスタム投稿bの全て（共通ターム以外も）の一覧が表示されてしまいます。
 * よろしくお願い致します。
 *  [manbo](https://ja.wordpress.org/support/users/manbo/)
 * (@manbo)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224130)
 * いや、だから一覧が表示されてしまう状態の時の`$term`の中はどうなってますか？と
   尋ねていますが・・・？
 *  [gblsm](https://ja.wordpress.org/support/users/gblsm/)
 * (@gblsm)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224136)
 * get_posts() の引数($args の要素)に ‘taxonomy’ と ‘term’ を指定しても無視される
   と思います。
    [@manbo](https://ja.wordpress.org/support/users/manbo/)さんがコメント#
   post-224095 で指摘なさったように ‘tax_query’ を指定しましょう。
 * tax_query の指定方法の例:
    [http://blog.nakachon.com/2014/10/27/dont-use-name-field-tax-query-in-japanese/](http://blog.nakachon.com/2014/10/27/dont-use-name-field-tax-query-in-japanese/)
 *  トピック投稿者 [natsu85](https://ja.wordpress.org/support/users/natsu85/)
 * (@natsu85)
 * [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224143)
 * manbo様　gblsm様
 * お返事ありがとうございます。
 * $termの中にはタクソノミーzzzと設定しているターム名等が入っております。
    ‘tax_query’
   をご指摘頂いたのにもかかわらず変更していないかったため、zzzを設定していた記事
   にはカスタム投稿bの記事が全て表示されておりました。 申し訳ございませんでした。
 * 変更後は、タクソノミーzzzを設定していないカスタム投稿aにはカスタム投稿bは表示
   されず
    設定しているカスタム投稿aには、同じタクソノミーzzzと同じタームが設定し
   ているカスタム投稿bの一覧が表示されました。
 * お2人まとめてご返信となってしまい申し訳ございません。
    本当にありがとうございま
   した。

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

 トピック「別のカスタム投稿タイプに共通のタクソノミーを設定している記事内容を取得」
には新たに返信することはできません。

## タグ

 * [カスタム投稿タイプ](https://ja.wordpress.org/support/topic-tag/%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97/)
 * [タクソノミー](https://ja.wordpress.org/support/topic-tag/%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 11件の返信
 * 3人の参加者
 * 最後の返信者: [natsu85](https://ja.wordpress.org/support/users/natsu85/)
 * 最後の活動: [8年、 9ヶ月前](https://ja.wordpress.org/support/topic/%e5%88%a5%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ab%e5%85%b1%e9%80%9a%e3%81%ae%e3%82%bf%e3%82%af%e3%82%bd%e3%83%8e%e3%83%9f%e3%83%bc%e3%82%92/#post-224143)
 * 状態: 解決済

## トピック

### 人気のトピック

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

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

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

### 未解決のトピック

### すべてのトピック
