Snow Monkey Blocksのカスタマイズに関して

0
いいねをした人: 居ません
  • このトピックには8件の返信、2人の参加者があり、最後にHatsukiにより4年、 7ヶ月前に更新されました。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #25271
    Hatsuki
    閲覧者
    6

    【お使いの Snow Monkey のバージョン】v7.9.x
    【お使いのブラウザ】Safari
    【当該サイトのURL】(公開できる場合は書いていただいたほうがスムーズです)

    ===

    snow_monkey_template_part_renderなどのフックで投稿一覧のli要素などのカスタマイズを行っていますが、
    Snow Monkey Blocksの最近の投稿などではrich-mediaを選んだりした場合でも各li要素にそのカスタマイズは反映されません。

    反映させるのはどうすれば良いかと思っているのですが、snow_monkey_template_part_renderなどのフックでカスタマイズした結果が反映されるようには出来ないでしょうか?

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

    最近の投稿ブロックは、最近の投稿ウィジェットとの互換性などの歴史的経緯から、

    apply_filters( 'inc2734_wp_awesome_widgets_render_widget', $widget, $args, $instance );
    

    というフィルターフックでカスタマイズできるようになっています。その後にパッチ的に snow_monkey_template_part_render を通すように改修できないこともないとは思うのですが、結局他のブロックも snow_monkey_template_part_render を通るわけではないので、ちょっと微妙かなと思います。

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

    inc2734_の方のフックでしたかー(汗)

    > 結局他のブロックも snow_monkey_template_part_render を通るわけではない

    確かに…微妙と言うか色々面倒な事になりますね。了解です。

    使いたい部分でinc2734_wp_awesome_widgets_render_widgetで適度にカスタマイズをするか通すようにするとかの方が楽かもって感じに思えますし、ちょっとそれで試してみてカスタマイズで質問が出たらまた別トピックで聞きますー。

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

    ちょっと確認したかったので再度トピックオープンしました。

    その後にパッチ的にsnow_monkey_template_part_renderを通すように改修できないこともないとは思うのですが、結局他のブロックもsnow_monkey_template_part_renderを通るわけではない

    調べてみたらウィジェットでもrenderフックは通ってるようでした…。
    ただ、通り方がちょっと特殊な感じで通ってるのでややこしかった…と。

    add_filter(
    	'snow_monkey_template_part_render',
    	function ( $html, $slug, $name, $vars ) {
    		if ( $slug === 'template-parts/loop/entry-summary' ) {
    			if ( $vars['_entries_layout'] === 'rich-media' ) {
    				ob_start();
    				<strong>ほにゃらら</strong>
    				$html = ob_get_clean();
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );

    と書いて、最新の投稿ブロックを実行すると$vars['_entries_layout']が無いと言うNoticeが出た状態で処理されているっぽいです。
    $varsに渡されてないだけでrenderフックは通る結果になるので。

    ウィジェットを使わない場合は正しくvarsに代入されているので、ウィジェット時に渡されないのを注意すると言うのがちょっと使い方として…な所もあるので、もうちょいとこちらでも考えてみようかと思います。(そもそも使い方が悪い気もしてる)
    一応、報告まで。

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

    調べてみたらウィジェットでもrenderフックは通ってるようでした…。

    あ、「li をカスタマイズ」と書いていたのでスルーしましたが、li の中の .c-entry-summary コンポーネントは Helper::get_template_part() で呼ばれているのでフック通ります。

    最新の投稿ブロックを実行すると$vars[‘_entries_layout’]が無いと言うNoticeが出た状態で処理されているっぽいです。

    あーこれはバグかも…です。

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

    > あ、「li をカスタマイズ」と書いていたのでスルーしましたが、li の中の .c-entry-summary コンポーネントは Helper::get_template_part() で呼ばれているのでフック通ります。

    あ、なるほど。

    > あーこれはバグかも…です。

    一応調査っすね。再現などで解らない事あれば聞いてください。
    widgets/snow-monkey-posts.phpHelper::get_template_partでは正しく指定されている(値も正常っぽい)のに
    その後のsnow_monkey_template_part_renderだと、$vars['_excerpt_length'] = NULLのみになってしまうっぽいって感じです。

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

    わかりました、ここですね。

    パラメーターを引き回すのに $wp_query を使ってて、もともと $wp_query が持っているパラメーターを上書きしてしまわないように上記の条件判定をしてたんですけど、entry-summary_excerpt_length はその上位の recent-posts も持っているので null にならずに意図した判定がされなかった、という感じですね。これどうしたら良いんだ…。

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

    あー

    if ( null === $this->wp_query->get( $key, null ) ) {
    	$this->vars[ $key ] = $value;
    	$this->wp_query->set( $key, $value );
    }

    じゃなくて

    if ( null === $this->wp_query->get( $key, null ) ) {
    	$this->wp_query->set( $key, $value );
    }
    $this->vars[ $key ] = $value;

    だといいんですかね。

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

    これ修正されていたんですね(汗)
    確認した所、問題のあったパターンでも全然上手くいくようになったので問題は解決したと思います。
    クローズします。有難うございました。

    0
    いいねをした人: 居ません
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • トピック「Snow Monkey Blocksのカスタマイズに関して」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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