「レンタルサーバー」カテゴリーアーカイブ

レンタルサーバーに関する記事を含みます。

レンタルサーバーのPHPバージョンアップで発生したワードプレスのエラー「Warning: Declaration of description_walker::start_el」を検索で修正した件


いやはや、自分で考える力を放棄してはダメなんだなと再確認した一件でした。

結構前から編集をお手伝いしている会社さん。
ワードプレスをご利用してWEB公開されているのですが「レンタルサーバーのバージョンアップが終わったら、サイトのトップにエラーが出たので助けて」と救援メッセージが来た。

そのサイトは、有料で購入したワードプレステンプレートを使っていたので、エラーメッセージを見て「wp-content/themes/xxx/functions.php on line 0X」あ~・・・・テンプレートのfunctions.php何十行目にエラーか・・・じゃ、販売元にメールで対応してもらえばいいんじゃね?と、購入履歴を元にフォームから問い合わせをかけた。

しかし、4日経っても返事なし・・・
ふざけた会社だなと、会社概要見ると「電話では対応しません、エラーが出ている情報が確認できない場合は連絡しません」とか強気。

ふへぇ~・・・・土地柄なのかね?と思って、再度、エラーが出ている状態にして修正の問い合わせをかけた。
土日挟んだけど、全く連絡無いので「ウッハ、自分で会社の評判落とすんかい?!」と無言のツッコミを入れて独自対応することにした。

で、今回のレンタルサーバーは、機能強化とか言っていたけど、PHPのバージョンも最新の7.2.6になっていた。

「あ、このへんかな?」とエラーメッセージの「Warning: Declaration of description_walker::start_el(&$output, $item, $depth, $args) 」で検索をかけたら一発で解決方法のサイトさんが出てきた。

サーバーのPHPを7.0にアップしたらWordPressでエラーが出た時の対処方

WEB制作会社さんの企業ページ内のブログ部分でしたが、非常に的確な解決方法でした。
・PHPのバージョンが上がった
・新しい変数に対応する必要がある
・正しい記述はこちら

のような説明で一発回答だった。素晴らしい。

エラーの表示はこんな感じで出ていた。
Warning: Declaration of description_walker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /home/xxx/xxx.com/public_html/xxx/wp-content/themes/xxx/functions.php on line 0X

ワードプレステーマのfunctions.phpにある「start_el」を探して「&$output, $item, $depth, $args」を「&$output, $item, $depth = 0, $args = Array, $id = 0」に変更した。

——————————————————————
class description_walker extends Walker_Nav_Menu
{
function start_el(&$output, $item, $depth, $args)
{
global $wp_query;
$indent = ( $depth ) ? str_repeat( “t”, $depth ) : ”;
——————————————————————
↑コレを↓コウした
class description_walker extends Walker_Nav_Menu
{
function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0)
{
global $wp_query;
$indent = ( $depth ) ? str_repeat( “t”, $depth ) : ”;

PHPを上書きしたらエラーが消えた。

まあ、やり終えて思ったのは、ちゃんとエラーメッセージ見ておけば連絡しなくて済んだな・・・って感じです。
以前、自分のLOTO7予想ゲームでも、PHPのバージョンアップで変数が使えなくなって修正した事がありました。
今回、他人が作った有料テンプレートだからと、販売元にスルーパスして修正を遅らせてしまったのは私のパスミスだったと反省した一件でした。
次から頑張る・・・

ワードプレスの更新に失敗した場合のメッセージは2種類あるが、対応は同じである。

ワードプレスを使っていると、プラグインの更新がエラーとなってサイトにアクセスすると真っ白、または「現在メンテナンス中のため、しばらくの間ご利用いただけません」場合によっては「Briefly unavailable for scheduled maintenance.」という画面表示になり、管理画面にもアクセスできなくなることがあります。

ワードプレスを使用して間もない頃、このメッセージ出現でサイトにアクセスできずに焦りまくったことがありますが、今となってはプラグインエラーがあったらFTPでサーバー内を見て「.maintenance」を見つけて「またコイツかよ」ぐらいに思えるようになりました。

解決方法は、この「.maintenance」を削除するか、リネームして無効にすれば復旧します。
FTPソフトを使っていない場合、契約しているサーバー会社のWEBFTPで確認することが出来ると思います。
プラグインも、便利だからと詰め込みすぎると更新で足を引っ張られることも有るので必要ないかな?と思ったら、しばらく無効化して影響なければ削除したほうがいいですね。