雨ときどき晴れ

最近は C# や Blazor やってます。Raspberry Pi で Node-RED も活用できるようになりました。

WordPress(SQLite)の投稿画面でエラーが発生した。

データベースにSQLiteを使用しているWordPressにて、
エラーが発生したので報告と対処方法をメモしておきたいと思います。


エラーは、投稿編集ページに表示されました。

Warning: require_once(/home/users/○○○/wordpress/wp-content/pdo/db.php) [function.require-once]: failed to open stream: No such file or directory in/home/users/○○○/wordpress/wp-content/db.php on line145

Fatal error: require_once() [function.require]: Failed opening required '/home/users/○○○/wordpress/wp-content/pdo/db.php' (include_path='.:/usr/local/php5.2/php') in /home/users/○○○/wordpress/wp-content/db.php on line 145 

上記のメッセージが表示されました。


とりあえず、無視して「更新」ボタンをクリックするとページを作成することができます。
ただし、「更新」ボタンをクリック後のページでは、

Warning: implode() [function.implode]: Invalid arguments passed in /home/users/○○○/wordpress/wp-includes/taxonomy.php on line 2461

Warning: Cannot modify header information - headers already sent by (output started at /home/users/○○○/wordpress/wp-includes/taxonomy.php:2461) in /home/users/○○○/wordpress/wp-includes/pluggable.php on line 890 

上記のエラーが表示されています。

対処方法

編集するファイル

116行目くらい

function escape($string) {
    return addslashes($string);
}

上記の箇所を

function escape($data) {
    if ( is_array($data) ) {
        foreach ( (array) $data as $k => $v ) {
            if ( is_array($v) )
                $data[$k] = $this->escape( $v );
            else
                $data[$k] = addslashes( $v );
            }
    } else {
        $data = addslashes( $data );
    }
    return $data;
}

このように置き換えると解決しました。