最新ワードプレス ホームページ制作

ワードプレスの最新版をインストールするために、サーバーでPHPのバージョンをアップしたら、エラーメッセージが表示されたので、一つずつ問題を解決していった時の記録

まずは結論から

変更したPHPのバージョンにおいて「廃止」「非推奨」となってしまった古い記述を「削除(または非表示)」「修正」することで問題が解決されました。

対象となるクライアントのホームページはTwenty Fifteen(2015年のワードプレスデフォルトテーマ)を、子テーマなしで直接ゴリゴリにカスタマイズして制作されたもので、5年以上、ワードプレスもプラグインもテーマもPHPも更新されていない放置状態でした。今回は実際に発生したエラーへの対処をご紹介します。

作業の前に行ったこと

  • ダッシュボード(一般設定)で管理者メールアドレスを自分のメールアドレスに変更
  • ダッシュボード(ツール→エクスポート→すべてのコンテンツ)からバックアップを取る
  • FTPソフト(FFFTPやFileZillaなど)でバックアップを取る(ファイルを直接アップロード、ダウンロードできるように準備する)
  • Dreamweaver(ドリームウィーバー)やTeraPadなどのテキストエディターでPHPファイルが編集できる環境を作る(使用中テーマの中のPHPファイルは全てダウンロードしてリライトできる状態にしておく)
  • サーバー管理画面からPHPバージョンを変更(アップしたりダウンしたり)できる状態にしておく

作業の内容と手順

  • PHPのバージョンは「5.6.40」から「7.4.33」に変更
  • ワードプレスのバージョンは「4.8.6」から「6.3.1」に変更
  1. 未使用のテーマを全て削除
  2. サーバー(エックスサーバー)でPHPのバージョンを「7.4.33」に変更
  3. ダッシュボードからワードプレス「6.3.1」をインストール
  4. プラグインをすべて更新
  5. エラーメッセージを受信する
  6. エラーへの対応
  7. エラーメッセージがホームページの数カ所に表示される
  8. エラーへの対応

メールで受信したエラーメッセージへの対処

メール本文の「エラー詳細」から抜粋

...wp-content/themes/テーマの名前/functions.php:592

functions.phpの592行目でエラーが発生していました。
このエラーメッセージは管理者メールアドレス宛に「サイトで技術的な問題が発生しています」という件名でワードプレスから送信されたメールに記載されていました。

PHP7.2で非推奨となった「create_function()」「remove_action()」をコメントアウト

変更後のPHPバージョンのルールに則り「正しく書き換える」という方法もあるかと思いますが、まずはクライアントのホームページが一刻も早く正常に表示されることを優先しました。テーマがゴリゴリにカスタマイズされている場合、エラーの種類や数が多岐にわたる可能性も考えられます。今回、functions.phpにおけるエラーは二箇所でした。

修正前のコード

//本体のアップデート通知を非表示
add_filter('pre_site_transient_update_core', create_function('$a', "return  null;"));

修正後のコード

//本体のアップデート通知を非表示
//add_filter('pre_site_transient_update_core', create_function('$a', "return  null;"));

上記のようにfunctions.phpの592行目をコメントアウトで非表示にすると、次のエラーメッセージには…

...wp-content/themes/テーマの名前/functions.php:596

596行目でエラーが発生しているとのこと。

修正前のコード

//バージョン情報非表示
remove_action(‘wp_head’,’wp_generator’);

修正後のコード

//バージョン情報非表示
//remove_action(‘wp_head’,’wp_generator’);

とりあえず今回は、functions.phpの二箇所でエラーが発生していました。
両方とも非表示にすることで問題が解決されました。

ホームページに表示されたエラーメッセージへの対処

ホームページでは、プラグイン「Custom Post Type UI」によって作成されたカスタム投稿に関連する「投稿詳細ページ」「投稿一覧ページ」「最新の投稿(ブログサイドバー)」でエラーメッセージが表示されていました。

ホームページに表示されたエラーメッセージの一例

...wp-content/themes/テーマの名前/template/content-voice.php:13

「template」フォルダの中に「content-voice.php」というファイルがあり、その13行目の記述に問題があることを知らせてくれています。

...wp-content/themes/テーマの名前/template/archive-voice.php:35

「template」フォルダの中に「archive-voice.php」というファイルがあり、その35行目の記述に問題があることを知らせてくれています。

シングルクォーテーションで名前キー(タームやスラッグ名)を囲む

シングルクォーテーションとは

↑のこと。

名前キー(タームやスラッグ名)をシングルクォーテーションで囲むことで、次々に問題が解決されていきました。

A.修正前のコード

get_template_part( 'template/content', voice );

A.修正後のコード

get_template_part( 'template/content', 'voice' );

B.修正前のコード

<?php elseif(is_single):

B.修正後のコード

<?php elseif('is_single'):

C.修正前のコード

<?php get_sidebar(column); ?>

C.修正後のコード

<?php get_sidebar('column'); ?>

D.修正前のコード

'show_count' => true,

D.修正後のコード

'show_count' => 'true',

他にも山ほど、同様の修正を行い、最終的には無事に全ての問題が解決しました。

ワードプレスの保守・管理を引き受けることになった理由と背景

この作業を依頼いただいたクライアントのホームページは、2016年に別の業者が制作したものでした。
クライアントはその業者に1年間サイトの保守・管理を任せていたものの「ほんの少しの修正なのに、その都度多くの費用を請求される」という理由で関係を終わらせていました。

このように「制作した人と連絡がとれない」「制作した人と関わりたくない」「管理者が移動・退職した」などの理由で、ホームページを作った人と、現在保守・管理を行っている人が異なるケースはよくあります。
そしてかなり高い確率でワードプレス、プラグイン、テーマ、PHPのバージョンを更新せずに使用しているケースがあります。

クライアントは60代の個人事業主で、WEBに関する知識や技術を持っていません。
約5年間、編集することを許されていた「コラム」「お客様の声」だけを、ワードプレスで更新していました。
そして今年、提供するサービスの価格変更や新しいサービスの開始などでホームページの改修が必要になり、知人を介して私のことを知り、相談をいただく流れとなりました。

見ず知らずの制作会社が、ワードプレスのテーマをゴリゴリにカスタマイズして作られたホームページの保守をお願いされると「嫌な予感」と「胸騒ぎ」で不安に襲われます。

最新のワードプレスは放置していても自動で更新される

ワードプレスはバージョン5.5以降、インストールしたプラグインを自動更新できるようになりました。そしてバージョン5.6以降は、ワードプレス自体の更新が自動で行われる仕様になりました。
つまり、今後ワードプレスを(もしかしたら半永久的に)放置していても「まぁ、大丈夫っしょ」ということです(PHPのバージョンアップは1年か2年に1回くらいのスパンで必要になるかもしれませんが…)。

これは私の個人的な意見ですが、高齢の方や、パソコンスキルに自信のない方が、少人数で運営されるホームページは、もっとシンプルに制作するべきだと思っています。
HTMLの知識がなくても「それなりに見栄え良くコンテンツを更新できる」のがワードプレスやムーバーブルタイプといったCMS(コンテンツ・マネジメント・システム)の優れているところです。

ここ1、2年の間に、ワードプレスの性能は格段に良くなりました。
ワードプレスやPHPのバージョンでお困りの際は、お気軽にご相談ください。

追伸

もしこの記事が役に立ったときは、埼玉県越谷市に向かって「ナイスだぜ、大橋プランニング。ホームページを新規で制作するとき、リニューアルするときが来たら、お前のことを必ず思い出すぜ」と囁いていただけると幸いです。
ちなみに、今のイチオシは「ワードプレスのホームページ制作」です。
お値引きさせていただきます。