v6ベータでのentry-summaryに対するフック

0
いいねをした人: 居ません
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #15913
    Hatsuki
    閲覧者
    6

    トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。

    【お使いの Snow Monkey のバージョン】v6.0.0 ベータ4
    【お使いのブラウザ】Safari
    【当該サイトのURL】ローカルテスト環境

    ===

    ‘snow_monkey_get_template_part_template-parts/loop/entry-summary’

    を掛けた場合、slug-nameに該当するようになったので、今までのままであればもしかしたらフックが掛からなくなったのか…と。
    この場合って、どう判断させてカスタマイズするのが良いのか悩んでます。
    (slugの判断を思い切り何かすれば出来ると思いますが、影響範囲が大きいので簡易的に済ませたい)

    該当のカスタマイズしてるコードを下記に書いておきます。
    レイアウトに「オリジナル」を加える変更をしてますが、フックが通らなくなってるっぽいです。
    (多分、この部分が問題と思いますが、足りなければ言ってください)

    add_filter(
    			'snow_monkey_get_template_part_template-parts/loop/entry-summary',
    			[ $this, '_entry_summary' ],
    			10,
    			2
    		);
    
    function _entry_summary( $_name, $_vars ) {
    		$_is_removed = remove_filter(
    			'snow_monkey_get_template_part_template-parts/loop/entry-summary',
    			[ $this, '_entry_summary' ],
    			10
    		);
    		if ( $_is_removed ) {
    			$_layout = \Framework\Helper::get_var( $widget_layout, get_theme_mod( get_post_type() . '-entries-layout' ) );
    			if ( is_archive() && $_layout === 'original' ) {
    				ob_start();
    				\Framework\Helper::get_template_part( 'customize/entry-summary', $_name, $_vars );
    				$_html = ob_get_clean();
    			} else {
    				ob_start();
    				\Framework\Helper::get_template_part( 'template-parts/loop/entry-summary', $_name, $_vars );
    				$_html = ob_get_clean();
    			}
    			echo $_html;
    			add_filter(
    				'snow_monkey_get_template_part_template-parts/loop/entry-summary',
    				[ $this, '_entry_summary' ],
    				10,
    				2
    			);
    		}
    	}
    0
    いいねをした人: 居ません
    #15915
    Hatsuki
    閲覧者
    6

    すみません、やり方が悪かったようで、フック処理されていました。
    ちょっと構成を合わせると処理されたのですが、何が原因なのかちょっと不明で調べると…

    \Framework\Helper::get_template_part( ‘テンプレート名’, $name, $vars );
    を省略して書いてもv5の時は意外と行けていたのが$nameと$varsを渡さないとかなり多くの問題が起こるようになっている…って感じですね。
    もし、カスタマイズで$nameと$varsを省略して使っているならv6では入れるようにした方が良いと思われます。

    また、entry-summaryのtitleなどを分けた形で修正もしないと駄目だった様子。
    そう考えると、オリジナルレイアウトとかも、v6とv5での互換が無いと思えます。

    と言う感じがします。
    とりあえず問題は解決したのでクローズしますが、これまでのget_template_part部分を略してた場合には、カスタマイズに結構影響が及ぶ…って解りました。(結構、辛い

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

    \Framework\Helper::get_template_part( ‘テンプレート名’, $name, $vars );
    を省略して書いてもv5の時は意外と行けていたのが$nameと$varsを渡さないとかなり多くの問題が起こるようになっている…って感じですね。
    もし、カスタマイズで$nameと$varsを省略して使っているならv6では入れるようにした方が良いと思われます。

    「多くの問題」というのは例えばどういうものでしょう? remove_filter できないとかテンプレートが読み込まれないとかですかね? フックに関してはこれまで動いていたものが動かなくなるのであればバグとして修正したほうが良いと思うので、詳しく知りたいです。

    0
    いいねをした人: 居ません
    #15936
    Hatsuki
    閲覧者
    6

    > 「多くの問題」というのは例えばどういうものでしょう?
    > remove_filter できないとかテンプレートが読み込まれないとかですかね?

    remove_filterは全部出来たのを確認済みです。
    (思い切りほとんどのテンプレートに対してフック掛けて調べた結果問題なさそう)

    さっき調べてみたんですが、めっちゃ勘違いしていました。
    多分、こちらでレイアウト追加を無理矢理していたのが原因です…。

    レイアウトにoriginalを追加……みたいなのとか色々追加をしていた所が、
    entry-summaryの構造がv6から変更と言う事で、
    各要素のmeta-post.phpとかが、v6のテーマ元を読んでしまうようになってしまってたようです。
    (その形で、適切にoriginalのレイアウト構造が当たらなくなっていた、または一部が当たっていたりCSSが掛かって、デザインがおかしくなってしまったとか色々)
    って感じのようでした。
    (また、多分、get_template_partに$nameとか与えないと、entry-summary内で各要素を取るようになったので、その処理をするget_post_typeなどが取れなくなる為か、何か動作に違いを出してしまうか、何かが起こったのかも)

    「多くの問題」と言って、すみません。そんなに問題なかったようです。

    また、レイアウトのオリジナル追加とかやってるのは私だけと思うので、気にしないでください。レイアウトのオリジナル追加自体が結構無理矢理な部分もあるので、この辺はもう…サポート外で良いかもです。
    (いつか、簡単にレイアウト追加できる仕組み考えたいですが…)

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

    あーなるほど。下記の投稿と似ているかもですが、テンプレートを細かくわけたのは、その部分だけ書き換えたい、に対応するためなので、entry-summary の中身をほぼまるっと書き換えるのであれば、無理に分割せずに .c-entry-summary__header.c-entry-summary__meta も1つのテンプレート内に書いちゃったほうが良いかなと思います。

    0
    いいねをした人: 居ません
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • トピック「v6ベータでのentry-summaryに対するフック」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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