3件の投稿を表示中 - 1 - 3件目 (全3件中)
-
投稿者投稿
-
2021年4月12日 2:37 PM #73032
【お使いの Snow Monkey のバージョン】 14.0.3
【お使いの Snow Monkey Blocks のバージョン】 11.0.3
【お使いの Snow Monkey Editor のバージョン】 5.0.1
【お使いのブラウザ】 Mac Chrome
【当該サイトのURL】### 実現したいこと
Snow Monkey Blocks「任意のタクソノミーの投稿」で任意のタクソノミーの記事一覧を表示させる際に、通常だと子カテゴリーだけの表示になるのですが、1. 親カテゴリー
2. 子カテゴリー
3. (存在する場合には)孫カテゴリーという順で出力をさせてたいと模索しています。
### 発生している問題
add_filter( 'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term', function( $args ) { if ( 'post' !== $args['name'] ) { return $args; } $_terms = get_the_terms( get_the_ID(), 'category' ); if ( $_terms ) { $_term = $_terms[0]; if ( 0 !== $_term->parent ) { // ここからどううまいことやってあげたらいいのかがわからない… } } ・・・ return $args; } );
### 試したこと
上記のように試しているのですが、スマートなカテゴリ並び替えをどう実装するべきか、みなさんの英知をお貸しくださいませ!♥ 0いいねをした人: 居ません2021年4月12日 2:53 PM #73037複数カテゴリーがチェックしてある場合など、実際の運用状況を考慮するともうちょっと調整が必要だと思いますが、ざっくりこんな感じですかねー。
add_filter( 'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term', function( $args ) { if ( 'post' !== $args['name'] ) { return $args; } $_terms = get_the_terms( get_the_ID(), 'category' ); $new_terms = []; foreach ( $_terms as $_term ) { $ancestors = get_ancestors( $_term->term_id, 'category' ); if ( $ancestors ) { $ancestors = array_reverse( $ancestors ); foreach ( $ancestors as $ancestor_id ) { $new_term = get_term( $ancestor_id, 'category' ); if ( ! is_wp_error( $new_term ) ) { $new_terms[ $ancestor_id ] = $new_term; } } $new_terms[ $_term->id ] = $_term; } } $args['vars']['_terms'] = $new_terms ? $new_terms : $_terms; return $args; } );
♥ 0いいねをした人: 居ません2021年4月12日 3:01 PM #73042なるほど。
タームを foreach して、その中で ancestor をリバースして 新しいタームに入れる…。この発想までいけてませんでしたー!ありがとうございます!
走らせて検証してみます!一旦閉じます!
♥ 0いいねをした人: 居ません -
投稿者投稿
3件の投稿を表示中 - 1 - 3件目 (全3件中)
- トピック「Snow Monkey Blocks 「任意のタクソノミーの投稿」にて親カテゴリー→子カテゴリーという形で出力させるための処理」には新しい返信をつけることはできません。