WordPress-Hook aus einer class aufrufen: Aufruf zu undefiniertem functionserrors

Ich bin neu in OOP mit WordPress und könnte etwas Hilfe beim Debuggen dieses Problems verwenden. Ich habe nach einer Antwort gesucht und versucht, mich selbst zu debuggen, konnte aber eine Hand gebrauchen. Ich versuche Admin-Menüelemente und deren Seiten zu erstellen, erhalte jedoch den folgenden Fehler:

Whoops\Exception\ErrorException thrown with message "call_user_func_array() expects parameter 1 to be a valid callback, function 'create_admin_page' not found or invalid function name"

Kann mir jemand helfen, mich in die richtige Richtung zu lenken? Danke im Voraus!

Hier ist meine class.

 namespace MyNamespace; class MyClass { public function __construct() { add_action('admin_menu', array($this, 'create_menu_item')); //add_action('admin_bar_menu', 'remove_wp_logo', 999); //add_filter( 'admin_bar_menu', 'change_howdy', 25 ); ddd($this->create_menu_item()); } //Get all pages public function get_all_pages() { $allpages = get_pages( array( 'post_type' => 'page', 'posts_per_page' => '-1') ); return $allpages; } //Get Parent Page ID protected function get_location_id() { $parents = get_page_by_title('Locations'); return $parents->ID; } //Get all locations excluding grandchildren protected function get_top_level_pages() { $children = get_page_children( $this->get_location_id(), $this->get_all_pages() ); $locations = array(); foreach ($children as $key => $value) { if ($this->get_location_id() == $value->post_parent) { $locations[$key] = $this->{$key} = $value; } } return $locations; } //Create top level menu item public function create_menu_item() { $locations = $this->get_top_level_pages(); foreach ($locations as $key => $value) { add_menu_page( $value->post_title, $value->post_title, 'manage_options', $value->post_name.'-admin-page.php', 'create_admin_page', //here is where I am calling the next function 'dashicons-location-alt', 6 ); } } //Create Admin Page -----should be it's own class? public function create_admin_page() { $children = get_page_children( $this->get_location_id(), $this->get_all_pages() ); ?> 

Welcome Child Pages

<?php }

Solutions Collecting From Web of "WordPress-Hook aus einer class aufrufen: Aufruf zu undefiniertem functionserrors"

In dieser Zeile:

 add_action('admin_menu', array($this, 'create_menu_item')); 

Sie übergeben die Methode create_menu_item der aktuellen class korrekt an das Callback-Argument der function add_action() . Sie müssen nur das gleiche Prinzip für die callbacke in der function add_menu_page() :

 add_menu_page( $value->post_title, $value->post_title, 'manage_options', $value->post_name.'-admin-page.php', array( $this, 'create_admin_page' ), // < -- Here 'dashicons-location-alt', 6 ); 

Dies gilt für jede WordPress-function, die einen 'Callback' als Parameter hat. Sie können hier mehr über callbacke in PHP lesen.