気づいたのは今さっきのことだったのですが、raspiブログで急激にユーザー数が低下しました。
原因はRTOCでした。
同じような状況の人は参考にしてみてください。
状況
WordPressでRTOCが表示されるページを開くとデザインが崩れる、なんか画面の中に小さな枠ができる、表示はできるけど500番エラーが発生する。
経緯
原因を探すと、raspiブログのページの一部がGoogleのインデックスから除外されていたためでした。その詳細には500番台のエラーとなっていました。WordPressをデバッグモードにすると、一番下にFatal Errorと表示されました。
Fatal error: Cannot redeclare followwidget_delete()
followwidget_delete()が複数回定義されてるようです。調べると、
if (!function_exists('followwidget_delete'))
を使用することで回避することができるようです。この条件式はfollowwiget_deleteが定義されてないときに実行されます。今回は1188行目に問題のコードがあったので次のように改変しました。
改変前
// JINへの対応 $get_theme_name = wp_get_theme(); $theme_name = $get_theme_name->get('Name'); if($theme_name == 'jin-child' || $theme_name == 'JIN' ){ if(is_single() || is_page()){ function followwidget_delete() { wp_deregister_script('cps-followwidget'); } add_action('wp_enqueue_scripts', 'followwidget_delete', 100); wp_enqueue_script('rtoc_js_followwidget', plugin_dir_url(__FILE__) . 'js/rtoc_followwidget.js', array('jquery'), false, true); } }
改変後
// JINへの対応 $get_theme_name = wp_get_theme(); $theme_name = $get_theme_name->get('Name'); if($theme_name == 'jin-child' || $theme_name == 'JIN' ){ if(is_single() || is_page()){ if (!function_exists('followwidget_delete')) { function followwidget_delete() { wp_deregister_script('cps-followwidget'); } } add_action('wp_enqueue_scripts', 'followwidget_delete', 100); wp_enqueue_script('rtoc_js_followwidget', plugin_dir_url(__FILE__) . 'js/rtoc_followwidget.js', array('jquery'), false, true); } }
原因
根本的にエラーが発生した原因はWordPressの更新ではないかと思います。理由はつい最近WordPressを6.0に更新したからという理由だけですが。WordPressの更新は軽率に行わない方がいいかもしれません。
リンク
リンク
リンク
リンク
リンク