複数表示させたカテゴリーラベルの表示順を指定したい

0
いいねをした人: 居ません
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #117029
    林田大平
    参加者
    12

    【お使いの Snow Monkey のバージョン】18.2.0
    【お使いの Snow Monkey Blocks のバージョン】17.2.0
    【お使いの Snow Monkey Editor のバージョン】9.1.0
    【お使いのブラウザ】Chrome
    【当該サイトのURL】

    ### 実現したいこと

    上記の方法で複数のカテゴリラベルを表示させているが、ラベルの表示順を固定したい。

    親カテゴリのラベルを1つ目に表示して、2つ目以降に子カテゴリが表示されるようにしたいです。

    ### 発生している問題

    任意のタクソノミーの投稿ブロックで、親カテゴリーと子カテゴリーのカテゴリーラベルの表示順が異なる。

    ### 試したこと

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

    get_the_terms() で取得したタームの各データには、親が何かというプロパティ(parent)があるので、get_the_terms() で取得したタームをループで回し、それで判定して並び替えたものを $args['vars']['_terms'] に入れる、という形はどうでしょう?

    1
    いいねをした人:
    #117143
    林田大平
    参加者
    12

    ありがとうございます。
    My Snow Monkeyに下記コードを記述していますが、どこに反映させればよいでしょうか。

    add_filter(
    	'snow_monkey_get_template_part_args',
    	function( $args ) {
    		// 記事一覧カテゴリー以外のテンプレートの場合は無視
    		if ( 'template-parts/loop/entry-summary/term/term' !== $args['slug'] ) {
    			return $args;
    		}
    
    		// 投稿以外の場合は無視
    		if ( 'post' !== $args['name'] ) {
    			return $args;
    		}
    
    		// 全ての設定されたカテゴリーを返す
    		$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'category' );
    
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #117170
    キタジマ タカシ
    参加者
    2253

    こんな感じでしょうか。

    add_filter(
    	'snow_monkey_get_template_part_args',
    	function( $args ) {
    		// 記事一覧カテゴリー以外のテンプレートの場合は無視
    		if ( 'template-parts/loop/entry-summary/term/term' !== $args['slug'] ) {
    			return $args;
    		}
    
    		// 投稿以外の場合は無視
    		if ( 'post' !== $args['name'] ) {
    			return $args;
    		}
    
    		// 全ての設定されたカテゴリーを返す
    		$terms = get_the_terms( get_the_ID(), 'category' );
    		$parent_terms = [];
    		$child_terms  = [];
    		foreach ( $terms as $term ) {
    			if ( ! $term->parent ) {
    				$parent_terms[] = $term;
    			} else {
    				$child_terms[] = $term;
    			}
    		}
    		$args['vars']['_terms'] = array_merge( $parent_terms, $child_terms );
    
    		return $args;
    	}
    );

    表示させたい条件によって変わってくると思うので、上記を参考に調整してください。

    1
    いいねをした人:
    #117181
    林田大平
    参加者
    12

    ありがとうございます!

    おかげさまで、意図した通りになりました。

    解決したのでトピックスを閉じます。

    1
    いいねをした人:
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • トピック「複数表示させたカテゴリーラベルの表示順を指定したい」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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