ハウディ、私は最近W3TCを「更新中」のチェンジリスト表示(非常にかっこいい)を 私のプラグイン に実装するように仕掛けましたが、避けるのが厄介なコードもあります。
このファイル の先頭を見ると、次のコードが表示されます。
define ( 'BMLT_CURRENT_VERSION', '2.1.16' ); // This needs to be kept in synch with the version above.
イック:P
それは最新に保たれる必要がある、それで機能はあなたのプラグインと現在の安定版の間で変化することができる。
私はCodexを熟読しましたが、見つけることができませんでしたが、プラグインのバージョンを取得するためのAPI関数である _ got _ があります。
何か手がかりはありますか?
ここにあなたがそれにしたいことをするであろういくつかのコードでの答えがあります: それ自身のバージョン番号を得るためのプラグインのための方法はありますか?
get_plugin_data() という関数があります。次のことが必要な場合は、メインプラグインファイル内からこれを呼び出してください。
$plugin_data = get_plugin_data( __FILE__ );
$plugin_version = $plugin_data['Version'];
しかし、他の質問への答えで述べられているように、あなたがしているように単にPHP変数を定義することはパフォーマンスのためにより良いです。
get_plugin_data()
の代わりに get_file_data() があります。これは追加のファイルをロードするというオーバーヘッドなしに利用可能です。
これをメインのプラグインファイルに追加するだけです。
$plugin_data = get_file_data(__FILE__, array('Version' => 'Version'), false);
$plugin_version = $plugin_data['Version'];
内部でget_file_data
はかなり高性能なものになるようにいくつかの包丁スキャンをします。
そして必要ならばあなたの定数を定義します。
define ( 'YOURPLUGIN_CURRENT_VERSION', $plugin_version );
考えられる解決策の1つは、正規表現です。
$plugin_version = NULL;
if(preg_match('/\*[\s\t]+?version:[\s\t]+?([0-9.]+)/i',file_get_contents( __FILE__ ), $v))
$plugin_version = $v[1];
この正規表現はget_file_data()
より少し速いということに言及しなければなりませんが、一般的にあなたはそれに気付かないでしょう。