関連記事のカテゴリーラベルが表示中の投稿のカテゴリーになる

0
いいねをした人: 居ません
14件の投稿を表示中 - 1 - 14件目 (全14件中)
  • 投稿者
    投稿
  • #110193
    NAUTICA(ノーチカ)
    参加者
    8

    【お使いの Snow Monkey のバージョン】17.2.4
    【お使いの Snow Monkey Blocks のバージョン】16.0.6
    【お使いの Snow Monkey Editor のバージョン】8.0.2
    【お使いのブラウザ】Google Chrome 104.0.5112.101
    【当該サイトのURL】https://mor-a.com/works/windmuhlebunkyo/

    ### 発生している問題

    上記のサイトでSnow Monkeyを使用させていただいています。
    My Snow Monkeyで一部カスタマイズしております。

    表題の通りページ最下部,関連記事(WORKSと表記変更中)のカテゴリーラベルが,表示中の投稿のカテゴリーを参照してしまいます。
    記載しているURLでは,すべてのラベルがすべて「2022」になっていますが,実際は違う年の実績です。
    他の実績ページでも同様です。

    カテゴリーの構成は,以下のようになっております。
    WORKS
    ├2022
    ├2021
    ├2020
    ├以下続く

    投稿のメインカテゴリーはWORKSです。

    ### 試したこと

    My Snow Monkeyプラグインを無効化してみましたが,変化は見られませんでした。

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

    ちょっと挙動が怪しいですね…。念の為確認させてください。

    WORKS の各施設のページは投稿タイプが「投稿」で、それに紐づくカテゴリーとして

    WORKS(親)
    ├2022(子)
    ├2021(子)
    ├2020(子)
    ├以下続く(子)

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

    0
    いいねをした人: 居ません
    #110227
    NAUTICA(ノーチカ)
    参加者
    8

    さっそくありがとうございます。
    投稿タイプ,カテゴリーとも間違いありません。
    よろしくお願いします。

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

    ありがとうございます。下記の環境で試してみました。

    ## カテゴリー

    WORKS(親)
    ├ 2022(子)
    ├ 2021(子)

    ## 記事

    - Works 2022-A (カテゴリー:2022)
    - Works 2022-B (カテゴリー:2022)
    - Works 2021-A (カテゴリー:2021)

    この状態で「Works 2022-A」を開くと、関連記事として「Works 2022-B」が表示され、そこには「2022」のラベルが表示されました。また、「Works 2021-A」を開くと、カテゴリー2021に該当する記事が他にないので関連記事は表示されませんでした。これは僕が想定していた挙動なのでここまでは問題ないかと思います。

    試してみて気になったのは、そもそもなぜ「WINDMÜHLE=BUNKYO」を開くいたときにカテゴリー2022以外の記事が関連記事に表示されるのかということです。関連記事の表示条件はカテゴリー一致&タグ一致なので、「WINDMÜHLE=BUNKYO」のカテゴリーが2022であれば2015等の記事は関連記事の表示条件に一致しないので表示されないはずです。

    子テーマで関連記事まわりをカスタマイズしているとか、年号のカテゴリー以外に何らかのカテゴリーやタグを設定されていたりしますかね?

    0
    いいねをした人: 居ません
    #110231
    NAUTICA(ノーチカ)
    参加者
    8

    確認ありがとうございます。

    タグの設定はしていません。他のカテゴリーとしてはNOTE,STAFFが存在します。
    WORKS内の投稿は,すべてメインカテゴリーはWORKS,サブカテゴリーとして年号が設定してあります。

    可能な範囲で管理画面の画像を添付します。

    投稿一覧

    カテゴリー一覧

    投稿「WINDMÜHLE=BUNKYO」のカテゴリー設定

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

    なるほど! こちらでも現象確認できました。一応現状でも「Works」を外して年のカテゴリーだけ付与すれば正しい表示になると思いますが、それだと関連記事以外の部分に影響がでそうでしょうか?

    0
    いいねをした人: 居ません
    #110236
    NAUTICA(ノーチカ)
    参加者
    8

    確かにWORKSを外すと同じ年号のものだけが表示されますね。

    ただ,トップページのラベルが年号になってしまいます。ここはWORKSになってほしいです。

    仕様上の問題もあるかと思いますが,希望としては,関連記事にはWORKS内のいろんな年号のものが出てほしいので,ラベルもその投稿の年号が出るのが理想ではあります。

    可能でしょうか?

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

    ただ,トップページのラベルが年号になってしまいます。ここはWORKSになってほしいです。

    仕様上の問題もあるかと思いますが,希望としては,関連記事にはWORKS内のいろんな年号のものが出てほしいので,ラベルもその投稿の年号が出るのが理想ではあります。

    なるほどです。現状はご指摘のバグがあるのでそれは改修中ですが、各ページでラベルの内容を出し分けたいのであればフックを使ってカスタマイズするのが良い(というか安全)だと思います。一応 Snow Monkey 的には複数のカテゴリー(ターム)指定や複数のタクソノミーがあったときに何を優先するかという指定を特にしていないので、WordPress の関数が先に返したものが使われる、というのが基本になります。なので例えば今サブカテゴリーが表示されていたとしても、何かの拍子に親カテゴリーが表示されるようになるというのはありえると思うので、そういう意味ではフックを使って何を出すかを固めちゃったほうが良いのかなと。

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

    とりあえず v17.2.5 で修正してみましたがどうでしょうか? 確認お願いします!

    0
    いいねをした人: 居ません
    #110531
    NAUTICA(ノーチカ)
    参加者
    8

    ご対応ありがとうございました。
    どのラベルもメインカテゴリーが表示されるようになりました。

    WORKSアーカイブの中は,下記のトピックを参考にフックで年号が表示されるように変更しました。

    ただ,投稿の関連記事のところがテンプレートパーツまではわかったのですが,その先がわかりませんでした。
    ちょっと教えていただけませんでしょうか。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/content/related-posts',
    	function( $args ) {
    		//この中
    	}
    );
    0
    いいねをした人: 居ません
    #110614
    キタジマ タカシ
    参加者
    2252

    WORKSアーカイブの中は,下記のトピックを参考にフックで年号が表示されるように変更しました。

    こっちの環境でも試したいので、そのコードを共有してもらうことってできますか?

    0
    いいねをした人: 居ません
    #110628
    NAUTICA(ノーチカ)
    参加者
    8

    ありがとうございます。
    北島さんのサンプルコードそのまんまなのですが,my-snow-monkey.phpに以下の通り追加しています。

    /**
     * カテゴリーラベル
     */
    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
    	function( $args ) {
    		// カテゴリーアーカイブあるいはタクソノミーアーカイブのとき
    		if ( is_category() || is_tax() ) {
    			// ページのクエリ情報を取得
    			$queried_object = get_queried_object();
    			// その投稿に割当てられているカテゴリー(タクソノミー)を全て取得
    			$terms = get_the_terms( get_the_ID(), $queried_object->taxonomy );
    			// 取得したカテゴリー(タクソノミー)のうち、最後のタームをカテゴリーラベルとして使用する
    			$args['vars']['_terms'] = [ end( $terms ) ];
    		}
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #110635
    キタジマ タカシ
    参加者
    2252

    ありがとうございます。試してみたのですが、僕の環境ではそのコードでは年にならず「Works」のままでした。カテゴリーを登録する順番とか、何かが影響するのかもしれません。

    ということで、上記のコードを改変して、下記のコードにして追加してみました。

    add_filter(
    	'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
    	function( $args ) {
    		// カテゴリーアーカイブあるいはタクソノミーアーカイブあるいは投稿のとき
    		if ( is_category() || is_tax() || is_singular( 'post' ) ) {
    			// ページのクエリ情報を取得
    			$queried_object = get_queried_object();
    
    			// その投稿に割当てられているカテゴリーを全て取得
    			$_terms = get_the_terms( get_the_ID(), 'category' );
    			if ( ! $_terms ) {
    				return $args;
    			}
    
    			$new_terms = [];
    			// 割当てられているカテゴリーのうち、カテゴリー名が数字4桁のものがあればそれを使う
    			foreach ( $_terms as $_term ) {
    				if ( preg_match( '|^\d{4}$|', $_term->name ) ) {
    					$new_terms[] = $_term;
    					break;
    				}
    			}
    			$args['vars']['_terms'] = $new_terms;
    		}
    		return $args;
    	}
    );
    0
    いいねをした人: 居ません
    #110683
    NAUTICA(ノーチカ)
    参加者
    8

    さっそくありがとうございます。
    コードを書き換えたところ,カテゴリーアーカイブと投稿の関連記事もうまく表示されました!
    判定のところで応用もできそうですね。

    試してみたのですが、僕の環境ではそのコードでは年にならず「Works」のままでした。カテゴリーを登録する順番とか、何かが影響するのかもしれません。

    なるほど…参考までにこちらの環境では「WORKS」のカテゴリーIDの方が年のカテゴリーIDより古いです。

    いろいろと勉強になりました。ありがとうございます!

    0
    いいねをした人: 居ません
14件の投稿を表示中 - 1 - 14件目 (全14件中)
  • トピック「関連記事のカテゴリーラベルが表示中の投稿のカテゴリーになる」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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