最新の記事サムネイルに親カテゴリーのみ表示しつつ、カテゴリーごとの記事一覧も正常に表示させたい

0
いいねをした人: 居ません
2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #143581
    akosan
    参加者
    32

    お世話になっております。下記問題について解決できずにおります。
    お忙しい中恐れ入りますがご教示をよろしくお願いいたします。

    【お使いの Snow Monkey のバージョン】27.5.1
    【お使いの Snow Monkey Blocks のバージョン】22.3.2
    【お使いの Snow Monkey Editor のバージョン】10.1.1
    【お使いのブラウザ】chrome
    【当該サイトのURL】

    ### 実現したいこと
    ①カスタム投稿の最新の記事一覧サムネイルに親カテゴリーのみラベルを表示させる
    かつ
    ②カテゴリーごとの記事一覧で正常に記事が表示される

    ### 発生している問題
    記事に複数のカテゴリーを登録した場合の優先されるカテゴリー名表示について

    上記トピックを参考に以下のコードを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;
    	}
    );
    
    /**
     * 最近の投稿でのカテゴリー表示は親のみにする(子は表示しない)
     */
    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 ) {
    				$new_terms = [];
    				$processed_ids = []; // 重複をチェックするための配列
    
    				foreach ( $_terms as $_term ) {
    					// 最上位の親カテゴリーを取得
    					if ( 0 !== $_term->parent ) {
    						$ancestors = get_ancestors( $_term->term_id, 'category', 'taxonomy' ); // タクソノミー名を指定
    						$top_level_term_id = end( $ancestors );
    						if ( $top_level_term_id && !in_array( $top_level_term_id, $processed_ids, true ) ) {
    							$new_terms[] = get_term( $top_level_term_id, 'category' ); // 最上位カテゴリーを追加
    							$processed_ids[] = $top_level_term_id; // 処理済みとして記録
    						}
    					} else {
    						// すでに登録済みでない場合のみ追加
    						if ( !in_array( $_term->term_id, $processed_ids, true ) ) {
    							$new_terms[] = $_term; // 親カテゴリーがない場合はそのまま追加
    							$processed_ids[] = $_term->term_id; // 処理済みとして記録
    						}
    					}
    				}
    				$args['vars']['_terms'] = $new_terms; // 重複排除後のカテゴリーを格納
    			}
    		}
    		return $args;
    	}
    );

    ①カスタム投稿の最新の記事一覧サムネイルに親カテゴリーのみラベルを表示させる
    は実現できたがカテゴリーごとの記事一覧に記事がなにもでなくなってしまった。
    追加したコードの問題があると思うが(コード追加以前は正常に表示ができていたため)解決できずいる

    ### 試したこと
    トピックの検索
    ネットの検索

    0
    いいねをした人: 居ません
    #143583
    アバター画像キタジマ タカシ
    参加者
    2476

    記事一覧に記事がなにもでなくなってしまった

    一覧の「カテゴリーラベル」が表示されなくなった、ならありえるかなと思うのですが、一覧自体が表示されなくなるというのはこのフックでは考えられないので、コードの記述にシンタックスエラーがあるか、あるいは全く別な問題がある気がします。念の為上で共有いただいたコードをこちらの環境でも適用してみましたが、正しく表示されました。

    まずは「上で共有いただいたコードのみ」を My Snow Monkey から削除すると一覧が正しく表示されるようになるか確認してください。

    0
    いいねをした人: 居ません
2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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