Endpoint Callback-Anzeige für benutzerdefiniertes Plugin

Ich baue ein Plugin, das es Administratoren erlaubt, Mitarbeiter zu einer database hinzuzufügen. Ich habe eine function in meiner Plugin-classndatei erstellt …

cp_libstaff_frontend_display() 

… die eine Tabelle jedes Mitarbeiters in der database für Frontend-Benutzer anzeigt. Diese function ist an den Shortcode angehängt, der unter der URL angezeigt wird:

 mysite.com/librarywp/staff-directory 

Nun, was ich tun möchte, ist ein Link auf den Namen jedes Mitarbeiters, der den Benutzer auf eine Seite für nur die Informationen dieses Mitarbeiters führt. Beispielsweise,

 mysite.com/librarywp/libstaff/1 

Wobei “1” die ID des Mitarbeiters ist, dessen einzelne Seite abgerufen werden soll. Ich habe einen Endpunkt dafür wie folgt erstellt:

 public static function cp_libstaff_add_rewrites(){ add_rewrite_endpoint( 'libstaff', EP_PERMALINK ); } public static function cp_libstaff_filter_request( $vars ){ if( !isset( $vars['libstaff'] ) ) $vars['libstaff'] = true; return $vars; } public static function cp_libstaff_rewrite_catch_libstaff(){ if( get_query_var( 'libstaff' ) ){ echo 'WHAT NOW?'; exit(); } } add_action( 'init', array('Libstaff', 'cp_libstaff_add_rewrites') ); add_action( 'template_redirect', array('Libstaff', 'cp_libstaff_rewrite_catch_libstaff') ); add_filter( 'request', array('Libstaff', 'cp_libstaff_filter_request') ); 

Nach diesem Punkt bin ich darüber verwirrt, wie ich mit der Callback-function fortfahren soll. Soll hier irgendwo ein benutzerdefinierter Post-Typ erstellt werden? Eine Vorlage irgendeiner Art?

Solutions Collecting From Web of "Endpoint Callback-Anzeige für benutzerdefiniertes Plugin"

Der Code in der ursprünglichen Frage war auf dem richtigen Weg. Der folgende Code wurde dem verknüpften Lernprogramm entnommen. Im Grunde musste ich nur eine Vorlagendatei in meinem Plugin erstellen (ich habe einfach einen Code aus der single.php aus meinem Hauptthema kopiert, um ihn als Anleitung zu verwenden für:

 dirname( __FILE__ ) . '/staff-template.php' 

Wenn dann template_redirect ausgeführt wird, wird diese Vorlage angezeigt. Dies setzt natürlich voraus, dass libstaff als Abfragevariable gesetzt ist.

 function cp_libstaff_rewrite_catch_libstaff() { global $wp_query; // if this is not a request for json or a singular object then bail if ( ! isset( $wp_query->query_vars['libstaff'] ) || ! is_singular() ) return; // include custom template include dirname( __FILE__ ) . '/staff-template.php'; exit; } add_action( 'template_redirect', 'cp_libstaff_rewrite_catch_libstaff' ); 

Tutorial-Link: https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/