カスタム投稿の一覧でカテゴリー複数表示は可能でしょうか

1
いいねをした人:
  • このトピックには2件の返信、2人の参加者があり、最後にhosifulukoにより2年、 9ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #81789
    hosifuluko
    閲覧者
    12

    【お使いの Snow Monkey のバージョン】バージョン: 14.3.5
    【お使いの Snow Monkey Blocks のバージョン】バージョン 11.4.1
    【お使いの Snow Monkey Editor のバージョン】バージョン 5.0.6
    【お使いのブラウザ】Chrome
    【当該サイトのURL】

    ### 実現したいこと

    こちらの記事を参考に「投稿」の一覧ではカテゴリーの複数表示をすることができたのですが、

    投稿の一覧で、各投稿のカテゴリーを複数表示にする
    https://snow-monkey.2inc.org/2019/06/04/multi-categories/

    カスタム投稿(プラグイン「Custom Post Type UI」を使用)の一覧ではカテゴリーの複数表示ができなかったのですが、カスタム投稿の一覧でもカテゴリー複数表示は可能でしょうか?

    ### 発生している問題

    参考記事に書かれているPHPをMy Snow Monkey プラグインに記入するとカスタム投稿の一覧のカテゴリー表記が消えてしまいます。

    (投稿の一覧は、カテゴリー表示も消えずに複数表示も成功します。)

    【投稿の一覧】

    【カスタム投稿の一覧】

    参考記事のPHPを削除すると、カテゴリー表記は復活。

    ### 試したこと

    フォーラムの他の方の質問内容を拝見しつつ、カスタム投稿のアーカイブページを開き、カスタマイズ→デザインで「〇〇〇〇アーカイブ設定」「[〇〇〇〇]タクソノミー設定」の設定を以下に設定してみました。

    (こちらが関係するのかはわからなかったんですが…)

    【〇〇〇〇アーカイブ設定の画面】

    【[〇〇〇〇]タクソノミー設定】

    0
    いいねをした人: 居ません
    #81980
    キタジマ タカシ
    参加者
    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;
    		}
    
    		// 全ての設定されたカテゴリーを返す ← ここで「投稿のビューテンプレート」なカスタム投稿タイプも「category」を取得しにいくためカテゴリーラベルの表示が消えます
    		$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'category' );
    
    		return $args;
    	}
    );

    ということで、こんな感じでどうでしょうか?(適宜変更してみてください)

    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;
    		}
    
    		// 投稿のときは全ての設定されたカテゴリーを返す
    		if ( 'post' === get_post_type() ) {
    			$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'category' );
    		}
    
    		// news のときは news_category を返す
    
    		if ( 'news' === get_post_type() ) {
    			$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'news_category' );
    		}
    
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #82000
    hosifuluko
    閲覧者
    12

    わー!ご解説いただきありがとうございます…m(__)m

    できました!!本当にありがとうございます><

    カスタム投稿が計2つあったのでこんな感じで書いてみました。

    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;
    		}
    
    		if ( 'news' === get_post_type() ) {
    			$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'news_category' );
    		}
    
    		if ( 'article' === get_post_type() ) {
    			$args['vars']['_terms'] = get_the_terms( get_the_ID(), 'article_category' );
    		}
    
    		return $args;
    	}
    );

    ありがとうございました!!

    1
    いいねをした人:
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタム投稿の一覧でカテゴリー複数表示は可能でしょうか」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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