2017-05-11 3 views
0

Ich versuche, ein Argument (sagen $arg) an den zweiten Parameter/Callback add_action() mit do_action() in Wordpress übergeben.Übergeben von Argument an eine Methode in Callback-Array in add_action() - WordPress

do_action('my_hook', $arg); 

die 'my_hook' in do_action() wird add_action() auf die unten beziehen

class My_Class { 

    public function __construct() { 
     add_action('my_hook', array($this, 'my_method ($arg)')); 
    } 

    public function my_method ($arg) { 
     some_function ($arg); 
     // some code here.... 
    } 
} 

Hinweis: Ich versuche, dies nicht in fuctions.php. Versuchen, Core-Dateien zu ändern. Ich weiß, dass das Ändern von Core-Dateien nicht empfohlen wird. Aber ich möchte die Horizonte erkunden (ich werde jedoch zurück zum Haus zurückkehren)

Bitte geben Sie eine Möglichkeit, das Argument in my_method() übergeben. Danke im Voraus.

Antwort

0

Hm Ich denke, das sollte funktionieren, wenn Sie die ($arg) aus dem Aufruf add_action herausnehmen.

class My_Class { 

    public function __construct() { 
     add_action('my_hook', array($this, 'my_method')); 
    } 

    public function my_method ($arg) { 
     some_function ($arg); 
     // some code here.... 
    } 
} 

// make sure you are creating a new object so __construct() is called 
$instance = new My_Class(); 

do_action('my_hook', $arg); 

Wenn man sich die Dokumentation aussehen, add_action können Sie die Anzahl der Argumente angeben eine Aktion übernimmt. Die Standardeinstellung ist 1.

https://developer.wordpress.org/reference/functions/add_action/#more-information

Verwandte Themen