Benutzerdefinierte Filter mit Meta-Wert in WordPress Admin-Liste funktioniert nicht

Hallo, ich habe versucht, die Seiten mit einem benutzerdefinierten Filter in der Admin-Post-Liste von WordPress zu filtern, aber nach der Auswahl in der Dropdown-Liste gibt es nichts wie seine nur alle Beiträge anzeigen und der Dropdown-Text kehrt zu seinem Standardtext “Alle Vorlagen anzeigen”. Bitte helfen Sie mir, ich kann nicht herausfinden, warum es nicht wirklich funktioniert.

Nachdem ich auf die Schaltfläche Filter geklickt habe, lautet die URL:

wp-admin/edit.php?s&post_status=all&post_type=page&action=-1&m=0&template=default&paged=1&action2=-1 

Heres der Screenshot:

Seitenvorlage

Heres meinen Code:

 function pagetemplates_request_admin($request) { if( isset($_GET['_wp_page_template']) && !empty($_GET['_wp_page_template']) ) { $request['meta_key'] = '_wp_page_template'; $request['meta_value'] = $_GET['template']; } return $request;} 

..

 function pagetemplates_restrict_manage_posts() { global $wpdb; $optemplate =''; $templates = $wpdb->get_col(" SELECT DISTINCT meta_value FROM ". $wpdb->postmeta ." WHERE meta_key = '_wp_page_template' ORDER BY meta_value "); ?>  Show all Templates  <option value="" >     <?php} 

 if( is_admin() && isset($_GET['post_type']) && $_GET['post_type'] == 'page' ) { add_filter('request', 'pagetemplates_request_admin'); add_filter('restrict_manage_posts', 'pagetemplates_restrict_manage_posts');} 

Solutions Collecting From Web of "Benutzerdefinierte Filter mit Meta-Wert in WordPress Admin-Liste funktioniert nicht"

Die erste Sache, die herausspringt ist, dass du folgendes verwendest:

Vorlage = Standard

in der URL, aber in dem Code, den Sie verwenden

 if( isset($_GET['_wp_page_template']) && !empty($_GET['_wp_page_template']) ) { 

Sie sollten überprüfen:

 if( isset($_GET['template']) && !empty($_GET['template']) ) { 

Vergessen Sie auch nicht, das $ _GET als Benutzereingaben zu bereinigen und nicht vertrauenswürdig zu sein.

Ich hoffe, das hilft.