投稿一覧で、各投稿の親カテゴリのみを複数表示したい

1
いいねをした人:
12件の投稿を表示中 - 1 - 12件目 (全12件中)
  • 投稿者
    投稿
  • #61678
    ドットワン合同会社
    参加者
    16

    いつもありがとうございます。

    【お使いの Snow Monkey のバージョン】11.7.6
    【お使いのブラウザ】chrome
    【当該サイトのURL】制作中

    ===

    上記記事を参照して、投稿の一覧で、各投稿のカテゴリーを複数表示することは簡単にできたのですが、各投稿の親カテゴリ(最上位)のみを複数表示させる方法がわかりません。

    get_the_category()などを使用して試みたのですが、複数の親カテゴリにまたがる投稿は1個しか取得できませんでした。

    ご教授いただけますでしょうか?

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

    コードを書いてみようと思うので、どのようなカテゴリーが存在していて、どのカテゴリーにチェックをしているかを教えてください!

    例:

    - ニュース
    - 日記
      - グルメ
      - 映画
    
    があって、ニュースと映画にチェックしている
    0
    いいねをした人: 居ません
    #62367
    ドットワン合同会社
    参加者
    16

    ご返信ありがとうございます。

    公開したので、こちらのサイトとなります。

    新刊情報
    -作家名
    キャンペーン
    -作家名
    特典情報
    -作家名

    というカテゴリ構成で、
    新刊情報、特典情報、作家名がチェックされている場合、
    新刊情報とキャンペーンのみ表示したいんです。

    記入していて気づいたのですが、

    新刊情報
    キャンペーン
    特典情報
    作家
    -作家名

    として、作家、および作家以下を表示しないとしたほうがスマートかもしれませんね。
    (ユーザーが追加したカテゴリでしたので、精査できておらず申し訳ございません)

    親のみしか表示しない。
    もしくは、
    親のみ表示かつ指定したカテゴリは除外

    どちらの方法でも結構です。

    どうぞよろしくお願いいたします。

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

    新刊情報
    -作家名
    キャンペーン
    -作家名
    特典情報
    -作家名

    というカテゴリ構成で、
    新刊情報、特典情報、作家名がチェックされている場合、
    新刊情報とキャンペーンのみ表示したいんです。

    えーっと、「新刊情報、特典情報、作家名」の「作家名」はどの親カテゴリーの作家名でしょうか…?
    また、「新刊情報、特典情報、作家名」だと「特典情報」が入っていて「キャンペーン」が入っていませんが、「新刊情報とキャンペーンのみ表示」というのはどういう判定になりますでしょうか?

    0
    いいねをした人: 居ません
    #62445
    ドットワン合同会社
    参加者
    16

    ご返信ありがとうございます。

    ごめんなさい。

    新刊情報、特典情報、作家名がチェックされている場合、
    新刊情報とキャンペーンのみ表示したいんです。

    は誤りで、

    新刊情報、特典情報、作家名がチェックされている場合、
    新刊情報と特典情報のみ表示したいんです。

    の誤りでした。

    親カテゴリが

    • 新刊情報
    • キャンペーン
    • 特典情報

    とあり、

    それぞれに作家名が子カテゴリとして設定されています。
    ですので作家名の重複があります。

    カテゴリ画面

    お手数をおかけしますが、どうぞよろしくお願いいたします。

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

    ということは、念の為確認ですが、

    - 新刊情報
      - 作家A
      - 作家B
    - キャンペーン
      - 作家A
      - 作家B
    - 特典情報
      - 作家A
      - 作家B

    とあって、「新刊情報の作家A」と「キャンペーンの作家B」にチェックがあるときは「新刊情報、キャンペーン」にチェック。
    とあって、「新刊情報」と「キャンペーンの作家A」にチェックがあるときは「新刊情報、キャンペーン」にチェック。
    とあって、「新刊情報」と「キャンペーンの作家A」と「特典情報」にチェックがあるときは「新刊情報、キャンペーン、特典情報」にチェック。

    ということであっていますか?

    0
    いいねをした人: 居ません
    #62457
    ドットワン合同会社
    参加者
    16

    ありがとうございます。

    カテゴリの認識はそのとおりです。

    出力に関しては自動化しなくても大丈夫でして、親カテゴリを必ずチェックしてもらうので、
    「新刊情報」「新刊情報の作家A」と「キャンペーン」「キャンペーンの作家B」にチェックがあるときは「新刊情報、キャンペーン」が表示。

    「新刊情報」と「キャンペーン」「キャンペーンの作家A」にチェックがあるときは「新刊情報、キャンペーン」が表示。

    「新刊情報」と「キャンペーン」「キャンペーンの作家A」と「特典情報」にチェックがあるときは「新刊情報、キャンペーン、特典情報」が表示という動きです。

    よろしくお願いいたします。

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

    あーなるほど、理解しました。ということは逆に「親カテゴリーを引っ張ってきて表示する」とではダメってことですね。やるとするなら「親を持つカテゴリーは表示しない」ですかね。ちょっとコード書いてみます。

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

    これでどうでしょうか?

    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' );
    		$terms = array_map(
    			function( $term ) {
    				return isset( $term->parent ) && $term->parent
    					?	false
    					: $term;
    			},
    			$terms
    		);
    
    		$terms = array_filter(
    			$terms,
    			function( $term ) {
    				return $term ? $term : false;
    			},
    		);
    
    		$args['vars']['_terms'] = $terms;
    
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #62634
    ドットワン合同会社
    参加者
    16

    ありがとうございます!

    見事実装できました。

    ご返信遅くなってしまいもうしわけございませんでした。

    恥ずかしながら全てを読み解くことができてはおりませんが、精進したいと思います。

    1点、構文エラーが出ているのですが表示されているのであまり気にしておりませんが、ご報告させていただきます。86行目です。

    本当にありがとうございました。

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

    あ!すみません、多分85行目のカンマだと思います。カンマを消してみてください!

    0
    いいねをした人: 居ません
    #62637
    ドットワン合同会社
    参加者
    16

    朝も早いですね!

    消えました。ありがとうございます!

    全て解決できたので、こちらでトピック閉じさせていただきます。

    本当にありがとうございました。

    1
    いいねをした人: 居ません
12件の投稿を表示中 - 1 - 12件目 (全12件中)
  • トピック「投稿一覧で、各投稿の親カテゴリのみを複数表示したい」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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