WordPressのサイト内検索は、デフォルトのままだとカスタムタクソノミーの値が検索対象に含まれません。
この検索機能を拡張する便利なプラグインが[Search Everything]ですが、残念なことに、新規投稿の公開時にエラーが発生するバグが残っており、しかも製作者様も放置しているという事態になっています。
出力されるエラー警告はおおむね次のとおり。
Fatal error: Cannot use object of type WP_Error as array in /home/example.com/public_html/wordpress/wp-content/plugins/search-everything/search-everything.php on line 927
どうやらWordPress本体のバージョンとの兼ね合いで起こるエラーのようですが、次の方法で解決できます。
Search Everything(Version: 8.1.9)のエラーの解決方法
プラグイン[Search Everything]の本体ファイル、『search-everything.php』内の913行目以下を、下記のコードで上書きします。
function se_post_publish_ping($post_id) { $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');
実際に置換するのは、916行目のif( ( $_POST['post_status'] == 'publish' ) && ( $_POST['original_post_status'] != 'publish' ) ) {
と、最末尾、935行目のadd_action('publish_post', 'se_post_publish_ping');
の箇所になりますね。
この2カ所を書き換えると正常に動作するはずです。
お困りの方はぜひお役立てください。
Search Everything : https://wordpress.org/plugins/search-everything/