WordPress CMS の通常のインストールは、何百ものスクリプト、プラグイン、およびテーマで構成されています。この概念により、スクリプトのコピーを作成し、変更されたバージョンを適切なディレクトリに配置するだけで、スクリプトを置き換えることができます。ただし、スクリプトまたはプラグインの新しいバージョンがインストールされても、コピーされたスクリプトは更新されません。スクリプト内には、多くの場合、何百もの関数があります。1 つの関数を変更すると、他の関数も更新されなくなります。多くの場合、特定の機能を追加または抑制するには、Wordpress のフックとフィルターで十分ですが、常にそうとは限りません。
更新プログラムがインストールされるたびに元のスクリプトが CMS によって置き換えられるように、関数を再宣言またはオーバーロードする方法を探しています。私はこれを試しました:
rename_function( 'wp_function' , 'old_wp_funtion )
function wp_function(){
// things to do before the function
$a = $b;
// call the old function
$result = old_wp_function();
// things to do afterwards
$b = $c;
return $result;
}
しかし、うまくいきません。また、Wordpress では、アスペクトする引数の種類と数がわかりません。オーバーロードされた関数もそれに対処する必要があります。
私の質問は次のとおりです。これをどのように実行して、任意の数と任意のタイプの引数を使用して、すべての場合に機能させるか。また、元の関数/スクリプトを変更する必要はありません。元の関数/スクリプトは、Wordpress の更新によって上書きされる可能性があり、上書きされる必要があるためです。