WordPress の WP HatenaNotation で spl_object_hash() が使えず画面が真っ白になる場合は代替関数を入れる

spl_object_hash() が存在しないとうことで WP HatenaNotation が動きませんでした。画面が真っ白なんですが、実はソースの中にエラーコードが隠れていたので抽出しておきました。

1
Fatal error:  Call to undefined function spl_object_hash() in /var/www/wordpress/wp-content/plugins/wp-hatena-notation/library/PEG/Cache.php on line 20

解決するために以下の代替関数を functions.php に書きこんで対応しました。
php5.1.6でspl_object_hashの代替関数 – masahilog

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (!function_exists('spl_object_hash')) {
    function spl_object_hash($object) {
        if (!is_object($object)) {
            $msg = __FUNCTION__ . "() expects parameter 1 to be object";
            trigger_error($msg, E_USER_WARNING);
            return null;
        }
        ob_start();
        var_dump($object);
        $obj_var = ob_get_contents();
        ob_end_clean();
        preg_match("/^object\(.*\)#[0-9]*/", $obj_var, $match);
        $hash_str = array_shift($match);
        return md5($hash_str);
    }
}

この代替関数の作者 masahi6 様にとても感謝です。

コメント

コメントは受け付けていません。