私は次のコードで私の髪の毛を伸ばしています、助けてください。 3ファイルあります。
File1.php:
Class File1 {
public function file1_register() {
//register some short codes;
}
public function file1_unregister() {
//unregister previous short codes;
}
}
Class File2 {
public function file2_register() {
//create some database tables.
}
public function file1_unregister() {
//delete previous tables.
}
}
function MyActivation() {
include_once (dirname(FILE).'/file1.php');
$File1 = new File1;
$File1::file1_register();
}
register_activation_hook(FILE, 'MyActivation');
関数file1_registerは動作を拒否します。最終的にはfile2_registerも実行したいのですが、現時点では、コードにエラーや問題があることはわかりません。
メソッドを静的メソッドとして登録するように定義すると、クラスのインスタンス化を回避したり、ex MyActivation
関数exを呼び出したりすることを回避できます。
File1.php:
Class File1 {
static function file1_register() {
//register some short codes;
}
static function file1_unregister() {
//unregister previous short codes;
}
}
File2.php:
Class File2 {
static function file2_register() {
//create some database tables.
}
static function file1_unregister() {
//delete previous tables.
}
}
MyPlugin.php:
include_once dirname( __FILE__ ).'/File1.php';
register_activation_hook( __FILE__, array( 'File1', 'file1_register' ) );
include_once dirname( __FILE__ ).'/File2.php';
register_activation_hook( __FILE__, array( 'File2', 'file2_register' ) );
またはは、単に現在のMyActivation
関数の "Paamayim Nekudotayim"(::)を矢印演算子( - >)に変更します。これはこの行を置き換えることを意味します。 :
$File1::file1_register();
これとともに:
$File1->file1_register();