mixhostにインストールしたWordPressの表示が遅くなってたので、phpを5.6から7.2に変更しました。

しかし、やはりエラーが出まくり。

このサイトでHTTP500エラーが出て表示されない。なので対策をしました。

1、テーマの関数を変更

500エラーが出た原因は、テーマの中にある関数でした。

私は賢威(賢威7.1 クール版 テーマ)を使っているのですが、function.phpを下記のように対策。

<変更前>

add_action(‘widgets_init’, create_function(”, ‘return register_widget(“Keni_PV_Widget”);’));

<変更後>

add_action(‘widgets_init’, function(){register_widget(‘Keni_PV_Widget’);});

参考:https://wp-simplicity.com/suport/topic/%E3%82%A6%E3%82%A3%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88%E3%81%AEphp7-2%E5%AF%BE%E5%BF%9C/

2、プラグインexec-phpのエラー

<エラー内容>

Parse error: syntax error, unexpected ‘new’ (T_NEW) in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-content/plugins/exec-php/exec-php.php on line 22

<対策>

exec-phpは使ってなかったので削除

3、プラグインjapanese-autotagのエラー

<エラー内容>

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; JapaneseAutoTag has a deprecated constructor in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-content/plugins/japanese-autotag/japanese-autotag.php on line 25

対策は下記。

<変更前(49行目)>

function __construct JapaneseAutoTag()

<変更後(49行目)>

function __construct() {

<エラー内容>

has_cap がバージョン 2.0.0 から非推奨になった引数付きで呼び出されました。ユーザーレベルの使用は推奨されていません。代わりに権限を使ってください。 in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-includes/functions.php on line 4045

対策は下記

<変更前(460行目)>

add_options_page(
‘Japanese AutoTag Options’,
‘Japanese AutoTag’,
8,
basename(__FILE__),
array(&$this, ‘handle_options’));

<変更後(460行目)>

add_options_page(
‘Japanese AutoTag Options’,
‘Japanese AutoTag’,
‘manage_options’,
basename(__FILE__),
array(&$this, ‘handle_options’));

4、プラグインmycategoryorderのエラー

<エラー内容>

Notice: mycategoryorder_Widget で呼び出された WP_Widget のコンストラクターメソッドはバージョン 4.3.0 から非推奨になっています ! 代わりに
__construct()を使ってください。 in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-includes/functions.php on line 3916

<対策>

使っているか不明なのでプラグインを停止。問題なければ削除の予定。

5、プラグインping-optimizerへの警告

<警告内容>

Warning: count(): Parameter must be an array or an object that implements Countable in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533

対策は下記。

<変更前(533行目)>

$pingCount=count($this->cbnetpo_future_pings);

<変更後(533行目)>

$pingCount = $this->cbnetpo_future_pings ? count($this->cbnetpo_future_pings ) : 0;

6、プラグインNonce, Please!のエラー

<エラー内容>

Notice: attribute_escape の使用はバージョン 2.8.0 から非推奨になっています ! 代わりに esc_attr() を使ってください。 in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-includes/functions.php on line 3853

Notice: attribute_escape の使用はバージョン 2.8.0 から非推奨になっています ! 代わりに esc_attr() を使ってください。 in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-includes/functions.php on line 3853

Notice: attribute_escape の使用はバージョン 2.8.0 から非推奨になっています ! 代わりに esc_attr() を使ってください。 in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-includes/functions.php on line 3853

対策は下記。

<変更内容>

関数attribute_escape()をesc_attr()に変更。検索して一括で置換。

7、プラグインNonce, Please!のエラー

<エラー内容>

Deprecated: Function create_function() is deprecated in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-content/plugins/yuzo-related-post/assets/ilenframework/core.php on line 4237

<変更前(4237行目)>

$function_meta_dinamyc = create_function( ”, “echo “.@var_export($html_data,TRUE).”;” );

<変更後(4237行目)>

$function_meta_dinamyc = function(){@var_export($html_data,TRUE);};

8、プラグインyuzo-related-postのエラー

<エラー内容>

Deprecated: Function create_function() is deprecated in /home/xxxxx/public_html/www.affiliate-tankyu.net/wp-content/plugins/yuzo-related-post/assets/ilenframework/core.php on line 4237

<変更前(4237行目)>

$function_meta_dinamyc = create_function( ”, “echo “.@var_export($html_data,TRUE).”;” );

<変更後(4237行目)>

//$function_meta_dinamyc = function(){“echo “.@var_export($html_data,TRUE).”;”;};

* コメントアウト

まとめ

取りあえず、上記の対策でエラーや警告はなくなりました。

php7.2にするとやはりいろいろな問題が生じます。

問題をなるべく生じさせないためには、

・phpのバージョンアップはこまめにやる
・pluginは更新を頻繁にしているものを選ぶ
・wordpressは最新にする
・定期的にバックアップを取る
・etc

などが大切です。

今回、バックアップは取りませんでしたが、バックアップしないでひどい目に合うこともあるのでやっておきましょうw。

ただ、今回のphpバージョンアップでトラブルにあったおかけでいろいろ勉強になりました。

なので、よかったです(*^o^*)。