-
投稿者投稿
-
2020年8月4日 3:08 PM #54939
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの Snow Monkey のバージョン】最新版
【お使いのブラウザ】Google chrome
【当該サイトのURL】(公開できる場合は書いていただいたほうがスムーズです)===
snow monkey blocksの任意のタクソノミーの投稿、最近の投稿ブロックについてご質問です。
カテゴリー名のラベルが右上に表示しますが、記事によってカテゴリーを複数つけている場合、どれかに限定させることは可能でしょうか?イメージとしては以下のサイトに似ているページを制作予定なのですが、
記事1つに対して、ジャンルとエリアのカテゴリーをつけて、記事をカテゴライズするような構造です。例
◎ジャンル(カテゴリ)
・暮らし(サブカテゴリ)〆チェック
…他◎エリア(カテゴリ)
・東京(サブカテゴリ)〆チェック
…他いろいろやってみたのですが、記事によってはジャンル側(暮らし)が表示されたり、エリア側(東京)が表示されたり定まりません。
カテゴリ名の先頭に数字を含めると優先され、なにか規則があるのかな?と思い、、
My snow monkeyやフックなどで調整が可能でしたら、教えていただきたいです。♥ 0いいねをした人: 居ません2020年8月4日 3:27 PM #54945このカテゴリーラベルは、その投稿に紐付いた(カテゴリーを含む)タクソノミーとそのタームを一括取得して、1つめのタームを表示するようになっています。取得順は特に指定していないので、おそらく ABC 順とかになるんじゃないかと思います。
下記のコードを My Snow Monkey プラグインか子テーマの functions.php に貼り付けてみてください。
add_filter( 'snow_monkey_get_template_part_args', function( $args ) { if ( 'template-parts/loop/entry-summary/term/term' === $args['slug'] && 'post' === $args['name'] ) { // 'post' の部分は投稿タイプ名 $_terms = get_the_terms( get_the_ID(), 'category' ); // タクソノミー名を指定 if ( $_terms ) { $args['vars']['_terms'] = [ $_terms[0] ]; } } return $args; } );
上記は投稿タイプが「post(投稿)」のときに、カテゴリーラベルを「category」に限定するコードです。「post」の部分を任意の投稿タイプ名、「category」のところを任意のタクソノミー名に変更して試してみてください。
♥ 0いいねをした人: 居ません2020年8月4日 5:27 PM #54947北島さん
ご返信ありがとうございます。
なるほど、このように指定するのですね・・!今回、カスタムタクソノミーを使わずに通常の投稿にある「カテゴリー(デフォルト)」のみで対応しようと思っておりまして、
その場合、ラベルを特定の(チェックした)カテゴリーにしぼることはできますか?上記の例ですと、
ジャンル>暮らし(category/genre/life/)と同時に
エリア>東京(category/area/tokyo)にチェックをした場合、「東京」を優先して表示させるような感じです。こういう複数カテゴリーをつける場合、全てカテゴリー(デフォルト)でやるよりもカスタムタクソノミーを併用して対応したほうがよいでしょうか。
通常のブログが少し多機能になるサイトでしたので、あまり複雑にならないようにできればなと思いまして。♥ 0いいねをした人: 居ません2020年8月4日 5:36 PM #54948あ、なるほどです。子カテゴリーになるんですね。ちょっと考えてみます…!
♥ 0いいねをした人: 居ません2020年8月5日 9:39 AM #54967下記に差し替えて試してみてください!
add_filter( 'snow_monkey_get_template_part_args', function( $args ) { if ( 'template-parts/loop/entry-summary/term/term' === $args['slug'] && 'post' === $args['name'] ) { // 'post' の部分は投稿タイプ名 $_terms = get_the_terms( get_the_ID(), 'category' ); // タクソノミー名を指定 if ( $_terms ) { $term = null; foreach ( $_terms as $_term ) { if ( 2 === $_term->parent ) { // 対象にしたい親カテゴリーの ID を指定 $term = $_term; break; } } if ( $term ) { $args['vars']['_terms'] = [ $term ]; } } } return $args; } );
♥ 0いいねをした人: 居ません2020年8月5日 11:09 AM #54975北島さん
ご指定のコードで確認しましたところ、意図したとおりに表示いたしました!
ありがとうございます。メジャーアップデートも近いなか対応してくださって大変助かりました。感謝いたします。
余談ですが、先日ありましたMy snow monkeyについての勉強会、YouTubeの方で観ておりました!
皆様の方法を知れるのは大変貴重なので、非常に興味深くたのしかったです。
今後も期待しています!それではこちらクローズさせていただきます。
♥ 1いいねをした人: 居ません -
投稿者投稿
- トピック「記事に複数のカテゴリーを登録した場合の優先されるカテゴリー名表示について」には新しい返信をつけることはできません。