Benutzerdefiniertes Post-Typ-Untermenü, sortiert nach spezifischem Meta-Schlüssel und Meta-Wert

Ich habe einen benutzerdefinierten Beitragstyp namens “Events” mit register_post_type erstellt. Ich versuche nun ein Untermenü innerhalb von “Events” zu erstellen, das nur Events anzeigt, die nach einem bestimmten Meta_key und Meta_Wert sortiert sind. (Beispiel: Zeige nur Ereignisse, die als “Priorität” markiert wurden.)

Ich verwende diesen Code, um das Untermenü “priority events” zu erstellen, aber die Abfrage gibt weiterhin alle meine Ereignisse statt nur die Prioritätsereignisse zurück:

function rt_priority_event_add_submenu() { $sub_slug = 'edit.php?post_type=event&meta_key=event_priority&meta_value=true'; add_submenu_page('edit.php?post_type=event', 'Priority Events', 'Priority Events', 'manage_options', $sub_slug); 

}

Hier ist der benutzerdefinierte Nachrichtentyp “Ereignisse” eingerichtet:

 register_post_type( 'event', array( 'label' => 'Events', 'labels' => rt_ui_labels( 'Event', 'Events', 'redtri' ), 'public' => true, 'has_archive' => true, 'rewrite' => true, 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail'), ) ); 

Ich brauche keine neuen ausgefallenen Spalten oder irgendetwas – ich möchte nur die gleichen Spalten verwenden, die bereits in Events eingerichtet wurden.

Vielen Dank im Voraus, und bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen!

Solutions Collecting From Web of "Benutzerdefiniertes Post-Typ-Untermenü, sortiert nach spezifischem Meta-Schlüssel und Meta-Wert"

Der Meta-Schlüssel oder Meta-Wert im Abfrageparameter filtert die Abfrage nicht standardmäßig automatisch. Sie müssen also die Abfrage filtern, um die Ergebnisse einzuschränken.

 add_filter('pre_get_posts', 'restrict_events_by_meta'); function restrict_events_by_meta($q){ if( $q->is_main_query() && is_admin() && 'event' == $q->get('post_type') && isset( $_GET['meta_key']) && isset( $_GET['meta_value']) ){ $q->set('meta_key', $_GET['meta_key'] ); $q->set('meta_value', $_GET['meta_value'] ); $q->set('orderby', 'meta_key' ); } }