サポート » 使い方全般 » カスタム投稿タイプのsingle.phpにターム一覧を表示したい

  • 解決済 uick

    (@uick)


    テーマ:SoSimple バージョン: 1.2.7
    作者: fervillz

    お世話になります。

    下記のコードで、その個別記事が属するカテゴリ一覧とタグ一覧がsingle.php内に出力されています。

    if ( ! function_exists( 'sosimple_entry_footer' ) ) :
    function sosimple_entry_footer() {
    	// Hide category and tag text for pages.
    	if ( 'post' == get_post_type() ) {
    	$categories_list = get_the_category_list( ', ', '' ); 
    		if ( $categories_list && sosimple_categorized_blog() ) {
    			printf( '<span class="cat-links">カテゴリー: %1$s</span>', $categories_list ); // WPCS: XSS OK.
    		}
    
    		$tags_list = get_the_tag_list( '', ', ', '' );
    		if ( $tags_list ) {
    			printf( '<span class="tags-links">タグ: %1$s</span>', $tags_list ); // WPCS: XSS OK.
    		}
    	}
    
    	edit_post_link( esc_html__( 'Edit', 'sosimple' ), '<span class="edit-link">', '</span>' );
    }
    endif;

    カスタム投稿の個別記事にも同じ要領でタームを出力したいのですが、何をどう書き加えればいいのかまるでわからず…
    (当方Web上のPHPコードを拾い集めて切り貼りしているレベルの素人です)

    さらにカスタム投稿が3種類あり、それぞれ別のタクソノミーを設定しているため、投稿タイプcatの記事にはcat_categoryとcat_tagを表示させ、同様にdogならdog_categoryとdog_tagの、birdならbird_categoryとbird_tagのタームを…と分岐させたいのです。

    こういったことは可能でしょうか。
    ご教示のほど何卒宜しくお願い致します。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • CG

    (@du-bist-der-lenz)

    投稿タイプcatの記事にはcat_categoryとcat_tagを表示させ、同様にdogならdog_categoryとdog_tagの、birdならbird_categoryとbird_tagのタームを…と、その個別記事が属するカテゴリ一覧とタグ一覧を表示するのと同等であることから、判断条件にカスタム投稿タイプを加えて、カスタム投稿タイプのカテゴリーと、カスタム投稿タイプのタグを取得することで可能でしょう。

    トピック投稿者 uick

    (@uick)

    CG様
    前回に引き続き気にかけていただいて恐縮です。
    やりたいことが可能とのことを教えてくださってありがとうございます。
    具体的にどのようなコードを書けば実現できるでしょうか?
    質問の書き方が悪くて大変失礼いたしました。

    こんにちは

    get_the_term_list 関数を使用するといいと思います。
    http://wpdocs.osdn.jp/関数リファレンス/get_the_term_list

    例)

    sosimple_entry_footer 関数内に、

    if ( 'cat' == get_post_type() ) {
    
    	$cat_categories_list = get_the_term_list( get_the_ID(), 'cat_category', '', ', ' );
    	if ( !is_wp_error( $cat_categories_list ) && $cat_categories_list ) {
    		printf( '<span class="cat-links">猫カテゴリー: %1$s</span>', $cat_categories_list );
    	}
    
    	$cat_tags_list = get_the_term_list( get_the_ID(), 'cat_tag', '', ', ' );
    	if ( !is_wp_error( $cat_tags_list ) && $cat_tags_list ) {
    		printf( '<span class="tags-links">猫タグ: %1$s</span>', $cat_tags_list );
    	}
    }
    トピック投稿者 uick

    (@uick)

    ishitaka様

    気づくのが遅くなり申し訳ありません。気にかけてくださって本当にありがとうございます。
    こういう時はget_the_term_listを利用するのですね!
    ご教示の通りにやってみたところ希望通りの表示が実現できました。

    これから二つのコードを見比べながら共通している命令の意味、また異なる記述の意味や必要性を一つ一つ調べます。

    投稿タイプごとに出力するタクソノミーを振り分ける件は私が勝手にややこしく考え過ぎていたようで…
    もっと複雑な分岐の記述?が必要になるものと思い込んでいましたが、同じコードを必要箇所だけ書き換えて繰り返すことで対応できるのですね。
    こちらに関しても重ね重ねありがとうございました!
    初歩的なことでお手数をおかけしてしまいました。

    CG

    (@du-bist-der-lenz)

    論理演算子「&&」「||」を活用すると合理化出来ますね

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カスタム投稿タイプのsingle.phpにターム一覧を表示したい」には新たに返信することはできません。