ターム一覧ページで、別のタクソノミーのタームをラベルに表示させたい

0
いいねをした人: 居ません
  • このトピックには4件の返信、2人の参加者があり、最後にアバター画像fuumyにより7ヶ月、 1週前に更新されました。
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #131056
    アバター画像fuumy
    参加者
    1

    【お使いの Snow Monkey のバージョン】25.1.4
    【お使いの Snow Monkey Blocks のバージョン】20.3.0
    【お使いの Snow Monkey Editor のバージョン】9.3.0
    【お使いのブラウザ】Google Chrome

    ### 実現したいこと

    ターム一覧ページを表示したときのラベルは、選択したタームが表示されますが、
    別のタクソノミーのタームが表示されてほしいです。

    ・カスタム投稿タイプ:料理
    ・カスタムタクソノミーその1:レストラン名
    ・カスタムタクソノミーその2:食材

    一つの料理につき、レストラン名から1ターム、食材から1タームを選択して投稿します。(レストラン名と食材は親子関係ではありません)

    ※「任意のタクソノミーの投稿」ブロックではカテゴリーラベルに使用するタクソノミーが選択できて大変助かったのですが、
    食材のタームは随時増えていくので、ターム一覧ページでも任意のタクソノミーのタームをラベルに表示させたいと思っています。

    ### 試したこと

    ネット検索とこちらのフォーラムで、関連しそうなものをあれこれとmy snow monkeyにコードを追加し試してみましたが、うまくいきませんでした。

    0
    いいねをした人: 居ません
    #131080
    キタジマ タカシ
    参加者
    2254

    こんな感じでどうでしょう? My Snow Monkey プラグインか子テーマの functions.php に追記してみてください。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
    	function( $args ) {
    		// カスタム投稿タイプ「news」以外のときは処理しない
    		if ( 'news' !== get_post_type() ) {
    			return $args;
    		}
    
    		// 表示するタームを書き換える(この場合はタクソノミー「news_category2」に変更)
    		$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'news_category2' );
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #131082
    アバター画像fuumy
    参加者
    1

    キタジマさま早速ありがとうございます!!

    My Snow Monkey プラグインで試してみたのですが、

    ・カスタム投稿タイプ:news
    ・カスタムタクソノミーその1:news_category1
    ・カスタムタクソノミーその2:news_category2

    だとして、
    news_category1のターム一覧ページでは無事にnews_category2のタームがラベルに表示されました!
    しかしnews_category2のターム一覧ページでもnews_category2のタームがラベルに表示されます。

    これを、news_category1のターム一覧ページではnews_category2のタームがラベルに表示、
    かつ、news_category2のターム一覧ページではnews_category1のタームがラベルに表示、
    というふうにはできますでしょうか?

    PHPとカスタマイズの知識が乏しくお手数をおかけしてしまいすみません…!

    0
    いいねをした人: 居ません
    #131089
    キタジマ タカシ
    参加者
    2254

    先程のコードだと条件分岐させていないので、全部が news_category2 になるようになっています。条件によって表示させるタクソノミーを変える場合は

    $args['vars']['_terms'] = get_the_terms( get_the_ID(), 'news_category2' );
    

    の部分を条件によって変える形になりますね。例えば

    – news_category1 のターム一覧ページでは news_category2 のタームがラベルに表示
    – news_category2 のターム一覧ページでは news_category1 のタームがラベルに表示
    – それ以外はデフォルト

    だとすると、

    if ( is_tax( 'news_category1' ) ) {
    	$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'news_category2' );
    } elseif ( is_tax( 'news_category2' ) ) {
    	$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'news_category1' );
    }

    になります。

    0
    いいねをした人: 居ません
    #131419
    アバター画像fuumy
    参加者
    1

    キタジマさま

    遅い返信となりすみません。

    条件分岐のコードありがとうございました!!
    確かに2つのカテゴリーページでもう一方のタームが表示されるようになりました!

    大変助かりました。
    このサポートフォーラムという場がとてもありがたいです。

    トピック閉じさせていただきます。

    1
    いいねをした人:
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • トピック「ターム一覧ページで、別のタクソノミーのタームをラベルに表示させたい」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。