Versuche, Beiträge aus einer Kategorie auf der Startseite auszuschließen

Ich habe den folgenden Code ausprobiert, um die Katzen-ID für eine meiner Kategorien (watch-isatv) zu erfassen und alle Beiträge in dieser Kategorie auszuschließen. Die Beiträge werden jedoch nicht ausgeschlossen. Was ist falsch an dem Code?

function excludeCat($query) { if ( $query->is_home ) { $catid = get_cat_ID('watch-isatv'); $query->set('cat', '-'.$catid); } return $query; } add_filter('pre_get_posts', 'excludeCat'); 

Solutions Collecting From Web of "Versuche, Beiträge aus einer Kategorie auf der Startseite auszuschließen"

Technisch pre_get_posts ist pre_get_posts eine Aktion, kein Filter, und Sie müssen nichts zurückgeben und $query wird als Referenz übergeben, aber dieser Code sollte trotzdem funktionieren. Aufgeräumt wäre es:

 function excludeCat($query) { if ( $query->is_home ) { $catid = get_cat_ID('watch-isatv'); $query->set('cat', '-'.$catid); } } add_action('pre_get_posts', 'excludeCat'); 

Es gibt jedoch mehrere potenzielle Fehlerpunkte.

  1. Sie fügen den Filter hinzu, nachdem die Hauptabfrage ausgeführt wurde. Sie müssen diesen Filter vor der Hauptabfrage hinzufügen. functions.php sollte funktionieren, aber den Code in anderen Template-Dateien wie archive.php oder home.php nicht home.php . Die Hauptabfrage wurde bereits ausgeführt.
  2. $query->is_home ist nicht das, was Sie erwarten oder brauchen. var_dump($query->is_home); zu deinem Code und lade deine Seite (n). Stellen Sie sicher, dass es true ist true wo Sie es brauchen, und andernfalls false .
  3. Der Slug, nicht der für Menschen lesbare Name, der mit get_cat_ID() ist falsch.

Ich würde mein Geld darauf legen, dass # 1 das Problem ist.

Fügen Sie diesen Code zu Ihrer untergeordneten Themafunktionsdatei hinzu und ersetzen Sie 007 durch die ID für die Kategorie von Posts, die Sie von der Startseite ausschließen möchten.

 function wpsites_exclude_category_home( $query ) { if ( $query->is_home() && !is_admin() && $query->is_main_query() ) { $query->set( 'cat', '-007' ); } } add_action( 'pre_get_posts', 'wpsites_exclude_category_home' );