class-wp-hook.php on line 303 :<php the_excerpt(); ?>以降が表示されない

状況

テーマの編集をしているときに、<?php the_content(); ?>のかわりに、<?php the_excerpt(); ?>を使用したら、使用した部分から下が表示されない。ローカルのphp8環境。
ざっくり調べると、<?php the_excerpt(); ?>で不具合が出るのは日本語の文字数の判定がうまくいかないから、解決策に「wp multibyte patch」を使うと良いという情報があったので、逆に「wp multibyte patch」を停止して表示できるようになった。

調査

自分のローカルの開発環境

  • php8
  • WordPress 5.8.3
  • 症状:ページが以降欠ける

wp-config.php のデバッグモードを true にした様子

Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, function “new_excerpt_mblength” not found or invalid function name in /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/class-wp-hook.php:303 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/plugin.php(189): WP_Hook->apply_filters(110, Array) #1 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-content/plugins/wp-multibyte-patch/wp-multibyte-patch.php(266): apply_filters(‘excerpt_mblengt…’, 110) #2 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/class-wp-hook.php(303): multibyte_patch->excerpt_mblength(110) #3 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/plugin.php(189): WP_Hook->apply_filters(110, Array) #4 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/formatting.php(3841): apply_filters(‘excerpt_length’, 110) #5 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/class-wp-hook.php(303): wp_trim_excerpt(‘<p>php\xEF\xBC\x98wordpr…’, Object(WP_Post)) #6 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/plugin.php(189): WP_Hook->apply_filters(”, Array) #7 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/post-template.php(429): apply_filters(‘get_the_excerpt’, ”, Object(WP_Post)) #8 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/post-template.php(394): get_the_excerpt() #9 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-content/themes/dekirukana/index.php(17): the_excerpt() #10 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/template-loader.php(106): include(‘/Applications/X…’) #11 /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-blog-header.php(19): require_once(‘/Applications/X…’) #12 /Applications/XAMPP/xamppfiles/htdocs/xxx/index.php(17): require(‘/Applications/X…’) #13 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/xxx/wp-includes/class-wp-hook.php on line 303

公開環境

  • php7.4
  • WordPress 5.8.3
  • 症状:対象部分が表示されない  […] だけだ。ループの記事タイトルや、フッターは表示できている。

 

対策

「wp multibyte patch」を停止

以前から運営しているサイトでは、使用している可能性の高いプラグイン。自分もお世話になっています。
100万以上にインストールされているようだ。
<?php the_excerpt(); ?>を使う人がいないのかな。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です