VIVA SOHO!M8 Design

VIVA SOHO!M8 Design

自宅で web & グラフィックデザイン の仕事をしてます。
Web / iMac / music / snowboarding / 国内・海外旅行 / 日記等ゆる~く更新

更新をサボりにサボっておりましたが、皆様いかがお過ごしでしょうか。さて、本日はWordPressプラグイン「Biz Calendar」を最新環境でも表示できるように修正してしまおう!と言うお話です。

「Biz Calendar」は無料かつシンプルなUIで軽く使いやすい営業日カレンダーのプラグインなのですが、残念ながら開発が止まってしまいましたね。

クライアントさんのWEBサイトでも使わせてもらっていたのですが、久しぶりにサイトのメンテナンスのご依頼をいただき、2026年2月時点での最新環境 (WordPress ver.6.9.1/ PHP ver.8.3.21-Xサーバー推奨)にバージョンアップしたところ、案の定エラーが出てしまいました泣。どうやら PHP ver. を 8.x にするとエラーが出るようなのです。

代替になるカレンダーを探さなきゃな〜と、ちょっとリサーチしてみたものの、色々な機能がついていて素晴らしすぎたり、有料だったりで、なかなか営業日だけ表示できるようなシンプルなものが見当たらず....えーん

で、ですよ。

WordPress を 最新の ver.6.9.1にしても PHP 7.4x環境では「Biz Calendar」は問題なく表示されていたので、PHP 8.0 以降で使われなくなったコードを書き換えれば表示できるのでは?と思いまして。

 

旧(エラーの原因): create_function を使っている。

 

新(修正後): PHP 8.x で推奨される function() 形式に書き換える。

 

はい!このコードの書き換えだけで、PHP8.3環境でも問題なく表示できるようになりましたよ!Geminiのコーディングパートナーさんが教えてくれました。

書き換えるファイルは「biz-calendar.php」です。

念の為、バックアップ取ってから作業してくださいね。
 

パス: /wp-content/plugins/biz-calendar/biz-calendar.php


FTPソフトや、レンタルサーバーのファイルマネージャーを使用して、上記の場所にあるファイルを開きます。

 

手元のファイルの構成では、82行目 、プラグイン本体の
「class BizCalendarPlugin」の中に原因となっている箇所がありました。
 

/**

 * プラグイン本体

 */

class BizCalendarPlugin{

 

var $option_name = 'bizcalendar_options';

var $adminUi;

 

public function __construct(){

register_activation_hook(__FILE__, array(&$this,'on_activation'));

add_action( 'admin_init', array(&$this,'on_admin_init') );

add_action( 'admin_menu', array(&$this, 'on_admin_menu'));

add_action( 'wp_enqueue_scripts', array(&$this,'on_enqueue_scripts'));

add_action( 'wp_ajax_upload_holidays', array(&$this,'upload_holidays') );

add_action( 'widgets_init', create_function( '', 'register_widget( "bizcalendarwidget" );' ) );

}

下矢印

 

add_action( 'widgets_init', function() { register_widget( "bizcalendarwidget" ); } );

    }


赤文字部分を青文字に書き換えて保存すれば、完了です!
元のバージョンによってはコードが若干異なることもあるかもしれませんが、create_functionfunction()で書き換えれば大丈夫なはず。もし"bizcalendarwidget" が "BizCalWidget"となってた場合はそれに合わせてください。

今後また別の不具合が出てくるかもしれませんが、ひとまずPHP 8.3xでも問題なく表示されるようになりました!!
※CSSでカスタマイズしてます↓

同じように「Biz Calendar」の代替となる営業日カレンダーをお探しの方もいらっしゃるのでは?と思い久々にブログを書いてみましたが、不具合が出ても責任は持てませんので修正は自己責任でお願いしますねアセアセ 少しでも同じようにお困りの方のお役に立てましたら幸いです。

それではまた バイバイ