目次
検証環境
- WordPress 5.5.1–ja
- WordPress 6.0.2-ja (2022/10/07追記)
- Chocolat 1.1.15 (WordPress用テーマ)
- PHP 8.0(CGI) / PHP 7.4(CGI) (2022/10/07追記)
- PHP8.3.2(モジュールモード) (2024/5/11確認)
症状①コメントが表示されない
コメントが表示されません
ダッシュボードで見るとコメントの記録はされているので、表示上の問題な様です
コメントの件数だけ表示が出ますが「1 件のトラックバック」という感じで、誤ってトラックバックとしてカウントされています
この症状で調べると、他のテーマでも同様の不具合が起きている様です
以下のURLでは、Mantraというテーマで問題が起き、修正により解決しています
Comments not appearing since upgrading to WordPress 5.5
これによると、Wordpress 5.5 からcomment_typeの値に変更があり、 ''(空文字) から 'comment' に変わった様です
症状①解決方法
/wordpress/wp-content/themes/chocolat/
にある
functions.php
ファイルの1か所を修正する
436行目の
if ( $comment->comment_type === '' ) {
を
if ( $comment->comment_type === '' || $comment->comment_type === 'comment' ) {
に変更するとコメントが出る様になりました(2020/9/18に変更)
この修正で前バージョン(WordPress 5.4含むそれ以前)も今後のバージョン(WordPress 5.5以降)も動きます
とりあえずこの設定でしばらく様子を見る事にします
症状①参考Web
- Comments not appearing since upgrading to WordPress 5.5
- [Chocolat] WordPress 5.5.1 でコメントが表示されない | WordPress.org
※ここで質問投げてる「moondoldo」は私です
症状②PHP8.0でエラー
PHP7.4からPHP8.0に上げると「このサイトで重大なエラーが発生しました」と表示されて何も見れない
ダッシュボードすら見れないので焦るw
PHP7.4に戻せばまた表示されるが、PHPのサポート期間の問題があるためPHP8.0以降で動かしたい
どうやらPHP8.0になると「create_function」という関数が使えなくなる様です
無名関数に変更する必要があります
症状②解決方法
/wordpress/wp-content/themes/chocolat/
にある
functions.php
ファイルの3か所を修正する
2154行目の
add_action( 'widgets_init', create_function( '', 'return register_widget( "Chocolat_Widget_New_Entrys" );' ) );
を
add_action( 'widgets_init', function(){return register_widget( "Chocolat_Widget_New_Entrys" );});
に変更
2265行目の
add_action( 'widgets_init', create_function( '', 'return register_widget( "Chocolat_Widget_Category_Recent_Posts" );' ) );
を
add_action( 'widgets_init', function(){return register_widget( "Chocolat_Widget_Category_Recent_Posts" );});
に変更
2343行目の
add_action( 'widgets_init', create_function( '', 'return register_widget( "Chocolat_Widget_PageNavi" );' ) );
を
add_action( 'widgets_init', function(){return register_widget( "Chocolat_Widget_PageNavi" );});
に変更
この3か所の変更でPHP8.0でエラーが出なくなりました(2022/10/07に変更)
この修正で前バージョン(PHP7.4含むそれ以前)も今後のバージョン(PHP8.0以降)も動きます
とりあえずこの設定でしばらく様子を見る事にします
無名関数に変更する際のハマり
最初
create_function( ''…
な所を
function('')…
と書いて
Parse error: syntax error, unexpected '''' (T_CONSTANT_ENCAPSED_STRING), expecting variable (T_VARIABLE)
なエラー出てハマってました
create_function関数で引数が2つしかなく、第一引数が「''」だった場合は
function()…
が正解な様です
コメントテスト
返信テスト1
返信テスト2
ありがとうございます!
困っていたので助かりました。
このテーマかわいいですよね☆