フォーラムへの返信
-
投稿者投稿
-
タイポがあったので、うまく動作しないままでした。
すみません、再度修正して載せておきます。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]; } ...略...
これで正常動作するはずです。
♥ 0いいねをした人: 居ませんsnow_monkey_entry_summary_title_num_words
と言うフィルターフックが用意されているので、
そちらを使えば一覧の方の文字数は変更できるようです。フックについては、下記のフック一覧をご参照お願いします。
♥ 0いいねをした人: 居ません該当の記事を書いたケミです。
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を足していただくと、めっちゃ助かるんですが…(汗♥ 0いいねをした人: 居ません> コードで書くのでよければ、snow_monkey_layout フックと bbPress の条件分岐関数の組み合わせでレイアウトを切り替えられるのではと思います。
全然コードとかでも大丈夫です。
ただ、「カスタマイザーとかから他の画面同様の操作性でできるようにしてー」みたいな事になった時にどうしようかなと思っているので、カスタマイザーとかの調整とかのやり方は解るんでコードをベースに組み込んで、その時はアドオンの方にプルリクとかする感じで公式に取り込んでもらって対応してもらうのが一番早いのかも(汗bbpress、ややこしい…
♥ 0いいねをした人: 居ませんうちの弟子が案件とか絡んだ時にやっていたので、そのままコード共有を。
何か、コードが適当すぎる気もする…(汗適当に修正するなりは、任せます。
一応解決したのでクローズしておきます。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 ); }
♥ 0いいねをした人: 居ません調べていましたが、どーもカスタムタクソノミーが関係していたっぽく、その際のカスタマイザーのPostTypeの取得に問題があったのか何かだったのかもしれないです。
結構無茶な事してるので、Snow Monkey自体のバグでは無いと思います。また問題が出た際に再度立てると言う事で。
著者ページの割り当ても対応されていますし、クローズします。♥ 0いいねをした人: 居ませんこれ修正されていたんですね(汗)
確認した所、問題のあったパターンでも全然上手くいくようになったので問題は解決したと思います。
クローズします。有難うございました。♥ 0いいねをした人: 居ません> なぜ無いのか…それは完全に忘れてたからだっ…!
かってあっただろうか…ここまでスパーンと返信される事がッ…!
> ということで次のアップデートで追加します。
お手数おかけしますー。
♥ 0いいねをした人: 居ません回答ありがとうございます。これで対応しておきます。
これをやる為だけにここまで書く必要あると、何とかスムーズにならないものかと思います(^_^;♥ 0いいねをした人: 居ませんどうやら、カスタム投稿かカスタムタクソノミーを云々する(?)と、
記事一覧でpost_type
を判定する部分が、そのカスタム投稿タイプの割り当てっぽい名前で表示されてるので、
カスタマイザーのアーカイブページがそのカスタム投稿タイプとして判断されているんですかね?(処理未確認カスタム投稿タイプとか設定して、記事を投稿で書かず、カスタム投稿の記事ばかり書いたりして表示されるとそのパターンになったっぽいので、もうちょっと調べてみます。
♥ 0いいねをした人: 居ません> んー、今割り当て可能にはなっていないはずなのですが、どうやって割り当てましたか?
サイトで今確認したところ、確かに出なくなってますね。
昨日のアップデート前くらいに色々調整していたので、旧バージョンだったかなと思って戻してみましたが、
何も変わらない。どうやって出してたのか…って感じです。
手順として、固定ページで下書きを作ってから、プロフィールの部分の記事一覧から表示したページのカスタマイズとか押したか何かしてそのページのカスタマイザーを直で開いて割り当てした感じだったと思います。
そのやり方で検索にも割り当てが出来てたのですが今だと出来ない(謎
再現できたら再度書きます。関係ないと思いますが、パンくずがカスタマイザーのプレビューだと
> ホーム > admin
って出てるのですが、これって前からでしたっけ?♥ 0いいねをした人: 居ませんwp-plugin-view-controllerで解決されていると思うので、クローズします。
♥ 0いいねをした人: 居ませんマルチサイトでのサイト毎の分岐方法は下記のサイトが参考になると思います。
もし、子テーマでされる場合であれば
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 );
と言う感じで、こちらも分岐でそれぞれの置換をやる形でどうでしょうか?
または分岐で読み込むテンプレートを変更するのも良いと思います。♥ 0いいねをした人: 居ません> あ、「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
のみになってしまうっぽいって感じです。♥ 0いいねをした人: 居ませんちょっと確認したかったので再度トピックオープンしました。
その後にパッチ的に
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いいねをした人: 居ません -
投稿者投稿