• 解決済 misonya

    (@misonya)


    CPT-UIを使用し、カスタム投稿タイプ・カスタムタクソノミーを作成しました。
    そして、ACFを使用し、固定ページへ投稿オブジェクトで並べるところまでは出来ました。

    カスタムタクソノミーは、area
    登録しているタームが、tokyo、nagoya、osaka
    です。

    やりたいことは、このpタグの部分へ、カスタムタクソノミーのスラッグをつけたいのですが、どうやらこの投稿オブジェクトには、カスタムタクソノミーの情報が入っていないようで適応のさせ方がわかりません…dumpしてみても該当する部分は見当たりませんでした。
    やりたいことまであと一息なので、お力を貸していただきたいです。

    <?php if(get_row_layout() == 'kigyo') : ?>
    	<?php while(has_sub_field('tenpoadd')): ?>
    	<?php
    		$obj=get_sub_field('tenpo');
    		$obj_title = $obj->post_title;
    		$obj_link = $obj->guid;
    	?>
    	<p><a href="<?php echo $obj_link; ?>"><?php echo $obj_title; ?></a></p>
    	<?php endwhile; ?>
    <?php endif; ?>
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • get_the_termsを使うとか、ですか?

    トピック投稿者 misonya

    (@misonya)

    get_the_terms使ってみたのですが、bool(false)やarray(0) {}と表示されるだけでした…
    var_dump( $obj );で出してみた結果が以下の通りなのですが、どこにもタームの情報がありませんでした。
    いろいろ試してみたのですが、投稿オブジェクトの情報からカスタムタクソノミーとかタームの情報は、どうやって呼び出してくればいいものなのかさっぱりわかりません。
    数日間悩んでいるのですが諦めるしかないのでしょうか…?

    object(WP_Post)#2553 (24) {
      ["ID"]=>
      int(265)
      ["post_author"]=>
      string(1) "2"
      ["post_date"]=>
      string(19) "2015-10-29 19:46:13"
      ["post_date_gmt"]=>
      string(19) "2015-10-29 10:46:13"
      ["post_content"]=>
      string(0) ""
      ["post_title"]=>
      string(36) "記事タイトル"
      ["post_excerpt"]=>
      string(0) ""
      ["post_status"]=>
      string(7) "publish"
      ["comment_status"]=>
      string(6) "closed"
      ["ping_status"]=>
      string(6) "closed"
      ["post_password"]=>
      string(0) ""
      ["post_name"]=>
      string(5) "pawon"
      ["to_ping"]=>
      string(0) ""
      ["pinged"]=>
      string(0) ""
      ["post_modified"]=>
      string(19) "2015-10-29 19:46:27"
      ["post_modified_gmt"]=>
      string(19) "2015-10-29 10:46:27"
      ["post_content_filtered"]=>
      string(0) ""
      ["post_parent"]=>
      int(0)
      ["guid"]=>
      string(58) "http://localhost/wp/?post_type=kameiten&p=265"
      ["menu_order"]=>
      int(0)
      ["post_type"]=>
      string(8) "kameiten"
      ["post_mime_type"]=>
      string(0) ""
      ["comment_count"]=>
      string(1) "0"
      ["filter"]=>
      string(3) "raw"
    }

    Termはメインクエリとは別クエリでIDを元に導出されるため投稿オブジェクトには含まれません。

    get_the_terms の使い方は合っていますか?

    get_the_terms ( $obj->ID, 'area' );
    トピック投稿者 misonya

    (@misonya)

    早々の回答有り難うございます。
    お恥ずかしながら、ずっと$post->IDと記載していたため動作していませんでした。
    そりゃ当然ですよね…勉強不足ですみません。
    下記コードで無事にカスタムカテゴリスラッグを取得することが出来ました。
    大変助かりました。ありがとうございました。

    $obj_tax = get_the_terms ( $obj->ID, 'area' );
    $obj_term = $obj_tax[0]->slug;
    <p class="<?php echo $obj_term; ?>"><a href="<?php echo $obj_link; ?>"><?php echo $obj_title; ?></a></p>
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「Custom Post Type UIでタームを取得したい」には新たに返信することはできません。