サポート » 使い方全般 » ターム名のみをリンク付きで出力させたいのですが

  • 解決済 pomfree

    (@pomfree)


    カスタム投稿名 blog
    タクソノミー名 category
    ターム名(slug) 赤(red)・青(blue)・黄(yellow)

    を前提にスラッグを指定して青のみや黄のみを表示させたいのですが続きをどう書けばいいのでしょうか?

    現在

    <?php the_terms($post->ID,’category’,”); ?>

    で出力しているのですが、一番最初にタームを設定した赤のみ表示されております。

    <?php the_terms($post->ID,’category’,” $term->slug ‘blue’); ?>

    のような感じで青のみを表示させるにはどうしたらいいでしょうか、php初心者でパラメータの書き方が全くわかりません・・・


    [モデレータより]
    「【重要】お読みください」フォーラムに投稿されていましたので、使い方全般フォーラムを移動しました。
    「【重要】お読みください」は、WordPress 日本語サイト運営チームから、みなさんへの連絡等に使用していますので、質問があっても回答がつかない場合があります。
    通常の質問は個別のフォーラムへ投稿してください。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • 下記はその投稿に設定されたタームを表示するものですので、その投稿に赤が設定されているのであれば赤しか表示されないと思います。
    <?php the_terms($post->ID,'category',''); ?>

    タームへのリンクはget_term_linkで取得できます。
    http://wpdocs.sourceforge.jp/関数リファレンス/get_term_link

    トピック投稿者 pomfree

    (@pomfree)

    返答ありがとうございます。

    get_term_linkで書き直したんですが、書き方がいまいちわからず

    <?php get_term_link($term->ID ,’blue’ ); ?>

    では表示されませんでした。

    get_term_linkはurlを取得するだけですので、表示させないといけないです。

    たとえばテーマのfunctions.phpに下記を追加します。

    function my_term_link( $term, $taxonomy ) {
    	$term_link = get_term_link( $term, $taxonomy );
    
    	if ( is_wp_error( $term_link ) ) {
    		return;
    	}
    
    	// 出力は自由に変えてください
    	echo '<p><a href="' . esc_url( $term_link ) . '">' . esc_html( $term ) . '</a></p>';
    }

    それで、テンプレート側で

    <?php my_term_link( 'blue', 'category'); ?>

    とすればcategoryタクソノミーのblueタームのアーカイブへのリンクが表示されるかと思います。

    トピック投稿者 pomfree

    (@pomfree)

    返事遅くなりました。
    返答ありがとうございます、とても助かります。

    上記の

    function my_term_link( $term, $taxonomy ) {
    $term_link = get_term_link( $term, $taxonomy );

    if ( is_wp_error( $term_link ) ) {
    return;
    }

    // 出力は自由に変えてください
    echo ‘<p>‘ . esc_html( $term ) . ‘</p>’;
    }

    <?php my_term_link( ‘blue’, ‘category’); ?>

    でリンク付きの出力はできたのですが、slug名になってしまい「blue」の表記になります。
    「青」の表記にするにはどうしたらいいでしょう?

    未検証ですが、こんな感じでどうでしょうか。

    function my_term_link( $term, $taxonomy ) {
    	$term_link = get_term_link( $term, $taxonomy );
    
    	if ( is_wp_error( $term_link ) ) {
    		return;
    	}
    
    	$t = get_term_by( 'slug', $term, $taxonomy );
    
    	// 出力は自由に変えてください
    	echo '<p><a href="' . esc_url( $term_link ) . '">' . $t->name . '</a></p>';
    }

    参考CODEX
    http://wpdocs.sourceforge.jp/関数リファレンス/get_term_by

    トピック投稿者 pomfree

    (@pomfree)

    迅速な対応誠にありがとうございます!

    無事解決しました!

    こういった書き方になるんですね、
    とても勉強になりましたありがとうございます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「ターム名のみをリンク付きで出力させたいのですが」には新たに返信することはできません。