excerpt_length フックの使い方|説明・引数・注意点

説明

excerpt_length は、自動生成される抜粋の長さ(語数)を変更するフィルターです。

基本構文

apply_filters( 'excerpt_length', int $number )

引数

  • $number:語数(既定は55)

戻り値

語数を返します。

使い方(サンプル)

add_filter( 'excerpt_length', function() {
	return 80;
}, 999 );

注意点

  • 日本語は単語の区切りがないため、文字数での制御には別途対応が必要です。
  • 優先度を大きくして、他の設定を上書きします。

実務での使いどころ

  • 自動で作る抜粋(the_excerpt())の、長さを、変えるとき。

よくあるミスと対処

  • 値を返していない。
  • 手動で入力した抜粋には、効かない。自動で作る抜粋だけが、対象。
  • 日本語の環境では、「単語数」ではなく「文字数」で数えられる。
  • テーマや、他のプラグインの設定に、上書きされる。優先度を、大きく(999 など)する。

NG例

add_filter( 'excerpt_length', function () {
	return 80; // 優先度が既定の10だと、テーマの設定に上書きされる場合がある
} );

OK例

add_filter( 'excerpt_length', function () {
	return 80;
}, 999 );

使い分け早見表

フィルター 加工する対象
excerpt_length 自動で作る抜粋の、長さ
excerpt_more 自動で作る抜粋の、末尾の文字
wp_trim_words() 文字列を、指定した長さに、切り詰める

関連項目

excerpt_more、the_excerpt()、add_filter()

公式リファレンス:excerpt_length | WordPress Developer Resources

コメント

タイトルとURLをコピーしました