「Blog Press」でエラー警告対処。
TCDさんのホームページで「Blog Press」がメールアドレス登録で無料配信されていました。
早速ダウンロードし、ローカルでテーマを切り替えてみたところ
「Deprecated: Function create_function() is deprecated」
と表示されてしまいました。
あららと思いつつ解消をしてみようと思います。
原因
「Deprecated」は非推奨という意味です。
今回の表示の場合だと「create_function()は非推奨ですよ」と促してくれいるわけです。
PHP7.2から非推奨で警告表示されるようになっているようです。
使用箇所は2か所ありました。
「blogpress_tcd10/widget/recommend_post.php on line 86」
「blogpress_tcd10/widget/ad.php on line 40」
それぞれ対策していきます。
対策
「recommend_post.php」の方を見てみます。
add_action('widgets_init', create_function('', 'return register_widget("recommend_widget");'));
確かに「create_function」が利用されていますね。
これを以下のように書き換えてやります。
add_action('widgets_init', function(){ register_widget('recommend_widget');});
cerate_functionを使用しない形ですね。
同様に「ad.php」の方も変更します。
add_action('widgets_init', create_function('', 'return register_widget("ad_widget");'));
という部分を
add_action('widgets_init', function(){ register_widget('ad_widget'); } );
というように変更します。
これでエラーが解消されるはずです。
ところが、次は異なるメッセージのエラーが出てきます。
「Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; recommend_widget has a deprecated constructor」
このようなメッセージです。
「コンストラクタの書き方が将来のバージョンで保証されないよ」
という意味合いです。
なので、再び両方のファイルを編集していきます。
「recommend_post.php」
function recommend_widget() {⇓function __construct() {
「ad.php」
function ad_widget() {⇓function __construct() {
以上でエラーが科しようされたかと思います。
ちなみに以下の画像赤枠が上記個所の対応場所です。