-
投稿者投稿
-
2020年9月16日 12:32 PM #57530
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの Snow Monkey のバージョン】11.3.2
【お使いのブラウザ】Chrome===
最新の投稿ブロックや、投稿一覧ページにて抜粋文を出力したとき、1列に3つ並んでいるカードのうち2番目のカードのみ指定した文字数に変更されません。
試したこととして、
1. WPMultibytePatchで文字数を指定
wpmp-config.phpを設定して、抜粋文字数を変更しました。2. カスタムテンプレートを用意して$args[‘_excerpt_length’]に数値を指定した
loop/entry-summary-post.phpを上書きするように準備した上で、53行目を’_excerpt_length’=> 50に変更しました。ローカル環境で、xDebugを使用して動作を確認したところ、2回目のみadd_filterで指定されている、$entry_summary_content_excerpt_lengthの中を通りませんでした。
remove_filterと連続することによる影響なのかなと予想しておりますが、ご確認いただけますでしょうか。
♥ 0いいねをした人: 居ません2020年9月17日 9:35 AM #57559下記の内容で検証してみました。
wpmp-config.php の設置と編集
wp-content/wpmp-config.php
を設置し、下記部分を編集。$wpmp_conf['excerpt_mblength'] = 10;
ループ内の _excerpt_length を編集
add_filter( 'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/content/content', function( $args ) { $args['vars']['_excerpt_length'] = 20; return $args; } );
ちゃんと反映されているか確認
add_filter( 'excerpt_length', function( $length ) { var_dump( $length ); return $length; }, 10000 );
とすると、各ループ内の抜粋部分に
int(20)
と表示され、切り取られました。ということから考えると、2. カスタムテンプレートを用意して$args[‘_excerpt_length’]に数値を指定した
loop/entry-summary-post.phpを上書きするように準備した上で、53行目を’_excerpt_length’=> 50に変更しました。の上書きの方法を静海さんと同じにすると再現するのかな?と思いました。同じ方法で試してみたいと思うので、どのように上書きをしているのか教えてください!
♥ 0いいねをした人: 居ません2020年9月18日 9:38 AM #57636ありがとうございます!
2. カスタムテンプレートを用意して$args[‘_excerpt_length’]に数値を指定した
loop/entry-summary-post.phpを上書きするように準備した上で、53行目を’_excerpt_length’=> 50に変更しました。
の上書きの方法を静海さんと同じにすると再現するのかな?と思いました。同じ方法で試してみたいと思うので、どのように上書きをしているのか教えてください!こちらについて、my-snow-monkey側のテンプレートを先に確認するようにhierarchyを設定した上で、同様のファイルをパス関係は一致するようにコピー。上記の通り53行目のみを書き換えております。
hierarchyの変更イメージは以下のとおりです
class Customize { public function __construct() { add_filter( 'snow_monkey_template_part_root_hierarchy', [ $this, 'custom_root_hierarchy' ] ); } /** * テンプレートファイルの読み込み優先順変更 * * @param $hierarchy * @return mixed */ public function custom_root_hierarchy( $hierarchy ) { $hierarchy[] = MY_SNOW_MONKEY_PATH; return $hierarchy; } } new Customize();
ただ、掲載件数を増やしたところ条件が2つ目ではなく一部記事だけになりましたので条件が違うかもしれません。
私の記事作成の問題もあるかもしれませんので、もう少し私の方でも調査させていただきます。
お手数をおかけしており申し訳ございません。
♥ 0いいねをした人: 居ません2020年9月18日 11:18 AM #57643なるほどです。こちらでも試してみますね。
53行目のみを書き換えであれば、下記のコードで_excerpt_length
だけを書き換えるほうが良いかもしれません(もしかしたらテンプレートの上書き機能に不具合があるかもなので)。add_filter( 'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/content/content', function( $args ) { $args['vars']['_excerpt_length'] = 20; return $args; } );
お手数をおかけしており申し訳ございません。
いえいえ、お気になさらずに!
♥ 0いいねをした人: 居ません2020年9月18日 12:18 PM #57648ちょっと本題からはそれるかもしれないですが、今回のようにテンプレートを上書きして、その中の
Helper::get_template_part
の第3引数で変数を渡しても、それは反映されずにもともとのテンプレートの中にあるHelper::get_template_part
の第3引数が使われてる気がします…。まだ何故かはわかりませんが、この挙動がバグなので引き続き調査します。これを修正することでこのトピックの問題も改善されると良いのですが…。♥ 0いいねをした人: 居ません2020年9月18日 12:25 PM #57650あ、すみません、↑間違いでした、僕のテストミスで、ちゃんと動いていました。同じように53行目を書き換え(20 としました)ると、
add_filter( 'excerpt_length', function( $length ) { var_dump( $length ); return $length; }, 10000 );
で全ての抜粋に int(20) が表示され切り取られました。なので何か別のカスタマイズが影響しているとか、別のプラグインが干渉しているとかがあるのかもしれません。
♥ 0いいねをした人: 居ません2020年9月22日 9:39 AM #57767ありがとうございます。
私の方でも条件がわからなくなってきましたので、再度色々試してみようかと思います。お時間取らせまして失礼しました。
♥ 1いいねをした人: 居ません -
投稿者投稿
- トピック「最新の投稿ブロックで抜粋を表示したとき、2つ目だけ抜粋文字数のフックを通過しない」には新しい返信をつけることはできません。