サポート » 使い方全般 » Advanced Custom Fieldsでタクソノミーの出力方法

  • 解決済 kojimadai

    (@kojimadai)


    Advanced Custom Fieldsでタクソノミーの出力方法について、ハマってしまいました。

    Advanced Custom Fieldsでカスタムフィールド「post-tag」というのを作り、タグのタクソノミー「post_tag」をつくりました。

    しかし、これの出力がどうしてもできません。どなたかご教授くださいませ。
    よろしくお願いします。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック投稿者 kojimadai

    (@kojimadai)

    カスタムフィールドは、通常の投稿(post)に追加しています。

    トピック投稿者 kojimadai

    (@kojimadai)

    フィールドタイプは、マルチセレクトです。

    トピック投稿者 kojimadai

    (@kojimadai)

    <?php echo implode(‘, ‘, get_field(‘post-tag’)); ?>

    このように書いた時には、タグのIDが表示されるのですが、タグの名前で表示されません。
    ご教授お願いします。

    taku-k

    (@taku-k)

    こんにちは。

    御質問の趣旨を詳しくお聞かせ頂きたいのですが、Advanced Custom Fields で post にフィールド「post-tag」を設定したのですよね?

    そのフィールド「post-tag」に入力した値を表示したいという事なのでしょうか?

    それと、フィールドタイプの「マルチセレクト」というのは Advanced Custom Fields で選択できるフィールドタイプ(テキストとか数値とかセレクトボックスとか選ぶところですよね)なのですか?
    試したところ「マルチセレクト」という選択肢がなかったのですが。

    トピック投稿者 kojimadai

    (@kojimadai)

    taku-kさん
    お返事ありがとうございます。仰るとおりです。
    やはりフィールドタイプの設定は「Multi Select」になっています。

    トピック投稿者 kojimadai

    (@kojimadai)

    taku-kさん
    もしかすると、有料add-onをインストールしているから表示されているのかもしれないです。

    taku-k

    (@taku-k)

    念の為 再度確認したのですが Multi Select なるものは選択肢としてはありませんでしたので、きっとadd-onなのだと思います。

    フィールドタイプを「セレクトボックス」にして試したところ、kojimadaiさんが行った

    <?php echo implode(', ', get_field('post-tag')); ?>

    という方法で表示されました。(複数の値を選択し、全て表示されました)

    そのadd-onの独自の表示方法があるのかと思います。

    トピック投稿者 kojimadai

    (@kojimadai)

    taku-kさん
    ありがとうございます。
    セレクトボックスが単一値なので、複数のタグが選択できなくなってしまうんですよね。。。
    どうしたらいいものか・・・・。

    taku-k

    (@taku-k)

    フィールドタイプを設定する時に「複数の値を選べるか否か」みたいな項目があったと思います。

    また、セレクトボックスを複数選ぶ場合には「Ctrlキー」を押しながらクリックすれば選べるかと。

    常に複数選択されるならチェックボックスの方がよいかもしれません。

    モデレーター gatespace

    (@gatespace)

    横からですが
    「マルチセレクト」については
    「フィールドタイプ*」を「タクソノミー」にすれば出てきます。

    他、公式のドキュメントには目を通されましたか?
    http://www.advancedcustomfields.com/resources/taxonomy/

    出力に関してもひと通りサンプルが掲載さいれています

    トピック投稿者 kojimadai

    (@kojimadai)

    taku-kさん
    gatespaceさん
    ありがとうございます。
    公式ドキュメントのサンプルも試したのですが、うまくいきませんでした。

    トピック投稿者 kojimadai

    (@kojimadai)

    <?php
    $terms = get_field(‘post-tag’);
    if( $terms ): ?>

    <?php endif; ?>

    このように書いたのですが、まったくダメのようです。

    トピック投稿者 kojimadai

    (@kojimadai)

    <?php
    $terms = get_field('post-tag');
    if( $terms ): ?>
    	<ul>
    	<?php foreach( $terms as $term ): ?>
    		<a href="<?php echo get_term_link( $term ); ?>">View all '<?php echo $term->name; ?>' posts</a>
    	<?php endforeach; ?>
    
    	</ul>
    <?php endif; ?>

    このように書いたのですが、まったくダメのようです。

    ishihara takashi

    (@ishihara-takashi)

    <?php echo implode(‘, ‘, get_field(‘post-tag’)); ?>

    このように書いた時には、タグのIDが表示されるのですが、タグの名前で表示されません。
    ご教授お願いします。

    とういうことは、IDは取得できてるんですね?
    であれば、

    <?php
    $terms = get_field( 'post-tag' );
    if( $terms ): ?>
    	<ul>
    		<?php foreach( $terms as $term_id ) :
    			$term = get_term( $term_id, 'post-tag' ); ?>
    			<a href="<?php echo get_term_link( $term_id ); ?>">View all '<?php echo esc_html( $term->name ); ?>' posts</a>
    		<?php endforeach; ?>
    
    	</ul>
    <?php endif; ?>

    上記のような形でどうでしょう?

    トピック投稿者 kojimadai

    (@kojimadai)

    ishihara takashiさん
    ありがとうございます!
    無事、解決いたしました。

    アドバイス頂いた皆様、本当にありがとうございました!!

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック「Advanced Custom Fieldsでタクソノミーの出力方法」には新たに返信することはできません。