PHP 5.1, WordPress3 から、PHP 7.3.1, WordPress5 へ移行したケース | PHP | みどりのウェブ開発日記

PHP 5.1, WordPress3 から、PHP 7.3.1, WordPress5 へ移行したケース

カテゴリ: PHP, wordpress

記事投稿日: 2019年1月28日



表題のとおりですが、環境を用意するのは、Windows なら XAMPP がてっとり早いので、古いバージョンを取得してきます。
今回の場合、5.6 で試したところ、動きましたので、PHP 5.1 の XAMPP がなくてもまだ何とかなりそうです。

PHP 5.6 の環境に、WordPress3 のコードと、データベースをインポート、エクスポート

これだけで、WordPress5 へのバージョンアップはできます。
バージョンアップが済んだら、次は PHP 7.3.1 の環境と、MySQL 5.5 または 8 の環境を用意します。

WordPress 5 のデータベース更新を行う

データベースを持ってきてログイン画面にアクセスすると、「データベースが更新されました」とメッセージが表示されます。
データベースを更新しますか、と問われるので、はいを押下したら、作業は完了です。

元から入っている、古いプラグインはそのままでも動きました。

古いデータベース関数をテーマや functions.php で使っているとエラー

独自テーマや独自関数を使われていたので、ちょっと不具合が出ました。
データベース関数の、mysql_connect, mysql_query, mysql_fetch_assoc は PHP 5系では非推奨でしたが、7では廃止されています。

これらの対応方法も書いておきます。


mysql_connect mysqli_connect へ

選択するDBも引数にとるため、mysql_select_db は不要となります

$mysqli = mysqli_connect(‘ホスト名’, ‘アカウント’, ‘パスワード’, ‘使用するDB名’);


mysql_query

接続した後のインスタンスを使用します。
$result = $mysqli->query($sql);


mysql_fetch_assoc

$result = $mysqli->query($sql)
$result->fetch_assoc();


最後にもうひとつ。
count() 関数が、引数に配列やオブジェクト以外のもの、つまり数えられないものが入っていると、warning を返すようになりました。

これは、型変数を使うと割と簡単に対応できます。 count( (array)$hoge ) といった具合です。

対応してみた感想

WordPress 自体のアップグレードは、2つ以上メジャーバージョンが古くても対応できる点、頼もしいですね。
ただ、自作のテーマや関数を使われている場合は、要注意です。

あと、WordPress5 からは、Gutenberg という投稿方式に変わり、インターフェースもかなり変わりました。
プラグインがまだ対応していないなどの問題もありますので、古い投稿方式のまま使いたい場合は、「Disable Gutenberg」というプラグインを検索して入れましょう。

手順が分かれば、それほど難しくはありませんが、2018年末で PHP5 系がサポート切れで、今後1,2年はこのような対応が進むのではないでしょうか。

お役に立てればと思います。








コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA




トップに戻る