WordPressにて新規投稿をすると、
ココに注意
このサイトで重大なエラーが発生しました。
という表示が出るようになってしまいました。
プラグインを入れてからの現象
このエラー現象が出始めたのが、
- EWWW Image Optimizerという画像関係のプラグインをWebP変換対応
- WebP Expressというプラグインを無効化
- Search Everythingをインストール
という行為をした後からになります。
画像関係のプラグインをどうこうしたからということで重大なエラーに発展しないと思いSearch Everythingに絞って対応してみようと思います。
Search Everythingを無効化
試しに、Search Everythingを無効化して新規投稿をしてみました。
ココがダメ
Search Everythingが原因のようです
新規投稿をしても、重大なエラー発生の画面に行かなくなるようになりました。
ということは、Search Everythingが問題を起こしているってことですね。
同じ事例を見つけて対応
ネット検索をしてみると同じ事例を見つけました。
ちなみに、重大なエラーは、Wordpressからメールでも届いていました。
そして、参考サイト
同じ症状に対する改善策のようなので自分も対処してみました。
プラグインファイルのsearch-everything.phpを直接開いて下記のコードに差し替えしました。
function se_post_publish_ping($post_id) {
//should happen only on first publish
$status = false;
if( ( $_POST['post_status'] == 'publish' ) && ( $_POST['original_post_status'] != 'publish' ) ) {
$permalink = get_permalink($post_id);
$zemanta_response = se_api(array(
'method' => 'zemanta.post_published_ping',
'current_url' => $permalink,
'post_url' => $permalink,
'post_rid' => '',
'interface' => 'wordpress-se',
'deployment' => 'search-everything',
'format' => 'json'
));
if (!is_wp_error($zemanta_response)) {
$status = json_decode($zemanta_response['body'])->status;
}
}
return $status;
}
add_action( 'publish_post', 'se_post_publish_ping' );
function se_post_publish_ping($post_id) {
//should happen only on first publish
$status = false;
if( ( $_POST['post_status'] == 'publish' ) && ( $_POST['original_post_status'] != 'publish' ) ) {
$permalink = get_permalink($post_id);
$zemanta_response = se_api(array(
'method' => 'zemanta.post_published_ping',
'current_url' => $permalink,
'post_url' => $permalink,
'post_rid' => '',
'interface' => 'wordpress-se',
'deployment' => 'search-everything',
'format' => 'json'
));
if (!is_wp_error($zemanta_response)) {
$status = json_decode($zemanta_response['body'])->status;
}
}
return $status;
}
add_action( 'publish_post', 'se_post_publish_ping' );
function se_post_publish_ping($post_id) { //should happen only on first publish $status = false; if( ( $_POST['post_status'] == 'publish' ) && ( $_POST['original_post_status'] != 'publish' ) ) { $permalink = get_permalink($post_id); $zemanta_response = se_api(array( 'method' => 'zemanta.post_published_ping', 'current_url' => $permalink, 'post_url' => $permalink, 'post_rid' => '', 'interface' => 'wordpress-se', 'deployment' => 'search-everything', 'format' => 'json' )); if (!is_wp_error($zemanta_response)) { $status = json_decode($zemanta_response['body'])->status; } } return $status; } add_action( 'publish_post', 'se_post_publish_ping' );
コードの内容は、何がどうなって直ったのかはよく分かりませんが、とにかく、コードを入れ替えたら、新規投稿しても重大なエラー画面にならなくなりました。