Je tire mes cheveux avec le code suivant, s'il vous plaît aider. J'ai 3 fichiers.
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');
La fonction file1_register refuse tout simplement de fonctionner. Finalement, j'aimerais également exécuter file2_register, mais à ce stade, je ne peux pas voir l'erreur ou le problème lié à mon code, aidez-moi s'il vous plaît.
Vous avez deux options: définissez vos méthodes d’enregistrement en tant que méthodes statiques et évitez d’instancier vos classes, voire appelez la fonction 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' ) );
OU change simplement le "Paamayim Nekudotayim" (: :) en l'opérateur de flèche (->) dans votre fonction MyActivation
actuelle qui signifie remplacer cette ligne :
$File1::file1_register();
avec ça:
$File1->file1_register();