最新の投稿ブロックで抜粋を表示したとき、2つ目だけ抜粋文字数のフックを通過しない

0
いいねをした人: 居ません
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #57530
    静海義明
    閲覧者
    1

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

    【お使いの 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
    いいねをした人: 居ません
    #57559
    キタジマ タカシ
    参加者
    2253

    下記の内容で検証してみました。

    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
    いいねをした人: 居ません
    #57636
    静海義明
    閲覧者
    1

    ありがとうございます!

    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
    いいねをした人: 居ません
    #57643
    キタジマ タカシ
    参加者
    2253

    なるほどです。こちらでも試してみますね。
    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
    いいねをした人: 居ません
    #57648
    キタジマ タカシ
    参加者
    2253

    ちょっと本題からはそれるかもしれないですが、今回のようにテンプレートを上書きして、その中の Helper::get_template_part の第3引数で変数を渡しても、それは反映されずにもともとのテンプレートの中にある Helper::get_template_part の第3引数が使われてる気がします…。まだ何故かはわかりませんが、この挙動がバグなので引き続き調査します。これを修正することでこのトピックの問題も改善されると良いのですが…。

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

    あ、すみません、↑間違いでした、僕のテストミスで、ちゃんと動いていました。同じように53行目を書き換え(20 としました)ると、

    add_filter(
    	'excerpt_length',
    	function( $length ) {
    		var_dump( $length );
    		return $length;
    	},
    	10000
    );

    で全ての抜粋に int(20) が表示され切り取られました。なので何か別のカスタマイズが影響しているとか、別のプラグインが干渉しているとかがあるのかもしれません。

    0
    いいねをした人: 居ません
    #57767
    静海義明
    閲覧者
    1

    ありがとうございます。
    私の方でも条件がわからなくなってきましたので、再度色々試してみようかと思います。

    お時間取らせまして失礼しました。

    1
    いいねをした人: 居ません
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • トピック「最新の投稿ブロックで抜粋を表示したとき、2つ目だけ抜粋文字数のフックを通過しない」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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