フォーラムへの返信
- 
		投稿者投稿
- 
		
			
				
タイポがあったので、うまく動作しないままでした。 
 すみません、再度修正して載せておきます。add_filter( 'wp_oembed_blog_card_blog_card_template', function( $html, $cache ) { $url = ''; preg_match( '/<a href=\"(.*?)\".*?>/mis', $html, $matches ); if ( is_array( $matches ) && 1 <= count( $matches ) ) { $url = $matches[1]; } ...略...これで正常動作するはずです。 ♥ 0Who liked: No usersnow_monkey_entry_summary_title_num_wordsと言うフィルターフックが用意されているので、
 そちらを使えば一覧の方の文字数は変更できるようです。フックについては、下記のフック一覧をご参照お願いします。 ♥ 0Who liked: No user該当の記事を書いたケミです。 
 wp_oembed_blog_card_blog_card_templateのフック、書き方が違っていたのをそのまま修正せずに記事に出していたようで…すみません。
 urlを取得するなどが必要なので、このように書き直してみてください。add_filter( 'wp_oembed_blog_card_blog_card_template', function( $html, $cache ) { $url = null; preg_match_all( '/<a href=\"(.*?)\".*?>/mis', $html, $matches ); if ( is_array( $matches ) && count( $matches ) >= 1 ) { $url = $matched[1]; } if ( 0 === strpos( $url, home_url() ) ) { $target = '_self'; } else { $target = '_blank'; } $cached_time = isset( $cache['cached_time'] ) ? date_i18n( 'd/m/y H:i:s', $cache['cached_time'] ) : null; ob_start();記事も修正しておきます。 @キタジマさん 
 もしよければ、このフックにurlを足していただくと、めっちゃ助かるんですが…(汗♥ 0Who liked: No user> コードで書くのでよければ、snow_monkey_layout フックと bbPress の条件分岐関数の組み合わせでレイアウトを切り替えられるのではと思います。 全然コードとかでも大丈夫です。 
 ただ、「カスタマイザーとかから他の画面同様の操作性でできるようにしてー」みたいな事になった時にどうしようかなと思っているので、カスタマイザーとかの調整とかのやり方は解るんでコードをベースに組み込んで、その時はアドオンの方にプルリクとかする感じで公式に取り込んでもらって対応してもらうのが一番早いのかも(汗bbpress、ややこしい… ♥ 0Who liked: No userうちの弟子が案件とか絡んだ時にやっていたので、そのままコード共有を。 
 何か、コードが適当すぎる気もする…(汗適当に修正するなりは、任せます。 
 一応解決したのでクローズしておきます。add_filter( 'the_title', [ $this, '_title' ] ); add_filter( 'bbp_get_forum_title', [ $this, '_forum_title' ], 10, 2 ); public function _title( $title ) { global $post; if ( ( is_single() || is_page() ) && in_array( get_post_type( $post ), [ 'forum', 'topic', 'reply' ] ) ) { $search[0] = '/^' . str_replace( '%s', '(.*)', preg_quote( __( 'Protected: %s' ), '/' ) ) . '$/'; $search[1] = '/^' . str_replace( '%s', '(.*)', preg_quote( __( 'Private: %s' ), '/' ) ) . '$/'; return preg_replace( $search, '$1', $title ); } return $title; } public function _forum_title( $title, $forum_id ) { $search[0] = '/^' . str_replace( '%s', '(.*)', preg_quote( __( 'Protected: %s' ), '/' ) ) . '$/'; $search[1] = '/^' . str_replace( '%s', '(.*)', preg_quote( __( 'Private: %s' ), '/' ) ) . '$/'; return preg_replace( $search, '$1', $title ); }♥ 0Who liked: No user調べていましたが、どーもカスタムタクソノミーが関係していたっぽく、その際のカスタマイザーのPostTypeの取得に問題があったのか何かだったのかもしれないです。 
 結構無茶な事してるので、Snow Monkey自体のバグでは無いと思います。また問題が出た際に再度立てると言う事で。 
 著者ページの割り当ても対応されていますし、クローズします。♥ 0Who liked: No userこれ修正されていたんですね(汗) 
 確認した所、問題のあったパターンでも全然上手くいくようになったので問題は解決したと思います。
 クローズします。有難うございました。♥ 0Who liked: No user> なぜ無いのか…それは完全に忘れてたからだっ…! かってあっただろうか…ここまでスパーンと返信される事がッ…! > ということで次のアップデートで追加します。 お手数おかけしますー。 ♥ 0Who liked: No user回答ありがとうございます。これで対応しておきます。 
 これをやる為だけにここまで書く必要あると、何とかスムーズにならないものかと思います(^_^;♥ 0Who liked: No userどうやら、カスタム投稿かカスタムタクソノミーを云々する(?)と、 
 記事一覧でpost_typeを判定する部分が、そのカスタム投稿タイプの割り当てっぽい名前で表示されてるので、
 カスタマイザーのアーカイブページがそのカスタム投稿タイプとして判断されているんですかね?(処理未確認カスタム投稿タイプとか設定して、記事を投稿で書かず、カスタム投稿の記事ばかり書いたりして表示されるとそのパターンになったっぽいので、もうちょっと調べてみます。 ♥ 0Who liked: No user> んー、今割り当て可能にはなっていないはずなのですが、どうやって割り当てましたか? サイトで今確認したところ、確かに出なくなってますね。 
 昨日のアップデート前くらいに色々調整していたので、旧バージョンだったかなと思って戻してみましたが、
 何も変わらない。どうやって出してたのか…って感じです。
 手順として、固定ページで下書きを作ってから、プロフィールの部分の記事一覧から表示したページのカスタマイズとか押したか何かしてそのページのカスタマイザーを直で開いて割り当てした感じだったと思います。
 そのやり方で検索にも割り当てが出来てたのですが今だと出来ない(謎
 再現できたら再度書きます。関係ないと思いますが、パンくずがカスタマイザーのプレビューだと 
 > ホーム > admin
 って出てるのですが、これって前からでしたっけ?♥ 0Who liked: No userwp-plugin-view-controllerで解決されていると思うので、クローズします。 ♥ 0Who liked: No userマルチサイトでのサイト毎の分岐方法は下記のサイトが参考になると思います。 もし、子テーマでされる場合であれば 
 template-parts/header/1row.phpの変更したい箇所に、それぞれの分岐処理を挟めば良いと思います。プラグインでされる場合であれば global $current_blog; $blog_id = $current_blog->blog_id; add_filter( 'snow_monkey_template_part_render', function( $html, $slug, $name, $vars ) { if ( $slug === 'template-parts/header/1row' ) { ob_start(); \Framework\Helper::get_template_part( 'template-parts/header/1row', $name, $vars ); $html = ob_get_clean(); if ( 1 === $blog_id ) { // 置換したいhtml内容 } } return $html; }, 10, 4 );と言う感じで、こちらも分岐でそれぞれの置換をやる形でどうでしょうか? 
 または分岐で読み込むテンプレートを変更するのも良いと思います。♥ 0Who liked: No user> あ、「li をカスタマイズ」と書いていたのでスルーしましたが、li の中の .c-entry-summary コンポーネントは Helper::get_template_part() で呼ばれているのでフック通ります。 あ、なるほど。 > あーこれはバグかも…です。 一応調査っすね。再現などで解らない事あれば聞いてください。 
 widgets/snow-monkey-posts.phpのHelper::get_template_partでは正しく指定されている(値も正常っぽい)のに
 その後のsnow_monkey_template_part_renderだと、$vars['_excerpt_length'] = NULLのみになってしまうっぽいって感じです。♥ 0Who liked: No userちょっと確認したかったので再度トピックオープンしました。 その後にパッチ的に 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に代入されているので、ウィジェット時に渡されないのを注意すると言うのがちょっと使い方として…な所もあるので、もうちょいとこちらでも考えてみようかと思います。(そもそも使い方が悪い気もしてる) 
 一応、報告まで。♥ 0Who liked: No user
- 
		投稿者投稿

