Eigenschaftswert von null, wenn Wert innerhalb einer Methode zugewiesen wird, die an den wp-Aktions-Hook angehängt ist

In my_method() unten my_method() ich der Eigenschaft $this->post_ids ein Array von Post-IDs zu, das später in meinen Abfrageargs verwendet werden soll – siehe process() .

Wenn ich my_method() mit dem init Aktions-Hook my_method() , funktionieren die Dinge, aber wenn ich my_method() mit dem wp Aktions-Hook my_method() , funktionieren die Dinge nicht.

Wenn my_method() mit wp my_method() ist, zeigt var_dump( $this->post_ids ) in process() null .

Wenn my_method() mit init my_method() ist, zeigt var_dump( $this->post_ids ) in process() Array[15] .

 public function __construct() { // This works add_action( 'init', array( $this, 'my_method' ) ); // This doesn't work. add_action( 'wp', array( $this, 'my_method' ) ); add_action( 'wp_ajax_myaction', array( $this, 'process' ) ); add_action( 'wp_ajax_nopriv_myaction', array( $this, 'process' ) ); } 

 public function my_method() { $this->post_ids = explode( ',', '69,70,71,72,73,80,86,89,90,91,92,93,94,96,169' ); } 

 public function process() { $args = array( 'offset' => 10, 'post_type' => 'post', 'post__in' => $this->post_ids ); $this->query = new WP_Query( $args ); // Process the query results here... } 

Hintergrundinfo: Die Methode process() behandelt Daten, die über eine AJAX-Anfrage gesendet werden. Nach der Verarbeitung sendet es eine Antwort an den Browser. Zum Beispiel: echo json_encode( $response )

Meine Frage:

Inside process() , warum ist der Wert der Eigenschaft $this->post_ids :

  • null wenn ich my_method() an wp my_method()

  • Array[15] wenn ich my_method() zu init my_method() ?

Ich verstehe nicht, warum es anders ist.

Update: Der Wert von $this->post_ids ist nur innerhalb der process() -Methode null . Könnte das daran liegen, dass process() während einer AJAX-Anfrage läuft?

Solutions Collecting From Web of "Eigenschaftswert von null, wenn Wert innerhalb einer Methode zugewiesen wird, die an den wp-Aktions-Hook angehängt ist"