it-swarm.com.de

das Anzeigen von Beiträgen einer bestimmten Kategorie im Bereich "Admin-Beiträge" verhindern

Für einige Zwecke habe ich ein Plugin erstellt, das automatisch Beiträge mit einer bestimmten Kategorie erstellt. Im Bereich "Admin-Posts" waren Posts mit dieser bestimmten Kategorie zu umfangreich, und es war schwierig, andere Posts zu finden.

Zu diesem Zweck habe ich ein weiteres Plugin geschrieben und möchte verhindern, dass Posts dieser bestimmten Kategorie im Abschnitt "Admin-Posts" angezeigt werden, ohne dass Plugins von Drittanbietern verwendet werden. Und ich möchte ein Menü im Admin-Bereich erstellen, um Beiträge dieser bestimmten Kategorie darin anzuzeigen.

Meine Zielkategorie ist "eventscat".

Aber ich weiß nicht, wie es geht, welchen Haken muss ich verwenden?

1
saeid ezzati

Sie können die Aktion pre_get_posts verwenden, um alle Abfragen sowohl im Frontend als auch im Administrator zu beeinflussen. In Ihrem Fall sollten Sie sicherstellen, dass Sie nur Administratoranfragen betreffen, und Sie können sogar get_current_screen verwenden, um diese weiter einzugrenzen. Hier ist ein Beispiel, das die Abfrage nur auf der Seite mit den regulären Beiträgen ändern würde:

add_action ('pre_get_posts', 'wpse311946_restrict_cats');
function wpse311946_restrict_cats ($query) {
   // retrieve the id of the category to be excluded
   $idObj = get_category_by_slug ('eventscat'); 
   $id = $idObj->term_id;
   // find current admin page
   $current_screen = get_current_screen ();
   // conditionally exclude category
   if (is_admin() && $current_screen->id == "edit-post" ) {
     $query->set ('cat', -$id);
     }
   }

Sie können denselben Filter verwenden, der leicht modifiziert ist, um sicherzustellen, dass nur Posts dieser Kategorie auf der anderen Posts-Seite angezeigt werden, die Sie erstellen möchten (diese hat eine andere Bildschirm-ID).

1
cjbj