SQLite Integrationの『Notice: Undefined property』対応

WordPressを5.0にしたら、SQLプラグイン『SQLite Integration』にて

Notice: Undefined property: stdClass::$compile_option in ~

といった426行目・424行目原因指定のNoticeエラーがたくさん出てくるようになった。

原因はエラーに書かれている通り『$compile_option』がナイせい。
WordPress5.0から、実際に存在する配列は『compile_options』だったのだ!

対応方法

つまり『$compile_option』を『compile_options』に変更すればもう出ない。

/sqlite-integration/query.class.php
『rewrite_limit_usage()』と『rewrite_order_by_usage()』の処理内にて

$_wpdb = new PDODB();
$options = $_wpdb->get_results('PRAGMA compile_options');
foreach ($options as $opt) {
	if (stripos($opt->compile_options, 'ENABLE_UPDATE_DELETE_LIMIT') !== false) return;
}

後日談

5.1にしたらなんと『compile_option』に戻っていた
よって、修正は不要なのだ!

と思っていたら、更に後日

なんと自分が使っていた『sqlite-integration』は『1.8.0』で、『1.8.1』が存在しており、そちらは『compile_option』
つまり結局同じ現象が起きるから、修正は必要!!

俺の自己都合で直したプラグイン

Github公開されたものを、フォークして、自己都合改造したものを公開中です。
自己責任でどうぞ。

コメント

タイトルとURLをコピーしました