気づいたのは今さっきのことだったのですが、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の更新は軽率に行わない方がいいかもしれません。
リンク
リンク
リンク
リンク
リンク