先日知人からWordPressをバージョンアップしたらダッシュボードなど設定画面に入れなくなったという連絡をもらいました。
ログインしようとすると、
Fatal error: Call to undefined function hash() in xxx/xxxx/wp-includes/session.php on line 64
というエラーが出てコンテンツを見る以外の WordPress 機能が使えなくなったと言うことです。
どうも、ダッシュボードの更新催促に促されるまま、4.0 にアップデートしたようです。私はまだ4.0に上げてなかったので、非公開URLのWordPress を4.0に更新してみたところ、特に問題なし。
エラーメッセージを検索してみると、wordpress のフォーラム情報が見つかりました。
http://ja.forums.wordpress.org/topic/138806
に同じ症状がありました。
WordPressを利用しているサーバーにPHPのHASH拡張がない場合にこの症状が表れるという感じ。
しかし、レンタルサーバーの場合、必要なPHPモジュールが入っていないことを確認する方法が必要になります。
<phptest.php>
<?php echo phpinfo(); ?>
とだけ一行のコマンドを書いたファイルを作って、phptest.php (拡張子がphpならなんでも)として保存します。
そして、これをサーバーのどこかにアップロードし、実行権を与えます。
次に自分のブラウザーから、このphpコマンドをCGIとして実行します。要するに、ブラウザーのURLに、
http://www.your.wp.server.com/phptest.php
という感じでアクセスします。下図のように enable と表示される部分があればいいのですが、そうでない場合はユーザー側では手を出せない箇所のためプロバイダーに連絡を取ってサーバーにHASH拡張モジュールを入れてもらうか、WordPress4.0に対応している別プロバイダーに乗り換えるか、4.0にアップデートする前に使っていた 3.9.2 に戻すことになります。
いずれにせよ面倒です。
余談ですが、NTT PC の WebARENA SuiteX レンタルサーバーでは WordPress 4.0 へのアップデートは問題なく行えました。