Manchmal möchte man einzelne Kategorien nicht auf der Blog-Startseite anzeigen lassen – im Fall allsky-rodgau.de die Kategorie „Offtopic“. WordPress bietet dafür keine direkte Einstellung, aber über die functions.php lässt sich das Verhalten präzise steuern.
Warum Kategorien ausblenden?
Gerade bei kleineren Blogs oder Projekten landen schnell Inhalte in einer Kategorie, die nicht im Haupt-Feed auftauchen sollen. Statt umständliche Workarounds einzubauen, kann man WordPress einfach anweisen, bestimmte Kategorie-IDs komplett zu ignorieren.
So funktioniert es
Der folgende Code sorgt dafür, dass die Kategorie-IDs XX und XY nicht mehr auf der Blog-Startseite erscheinen. Die Lösung ist update-sicher, greift nur im Frontend und berücksichtigt auch die Paginierung.
/**
* Bestimmte Kategorien auf der Blog-Startseite ausblenden
*/
function allsky_exclude_categories_from_blog( $query ) {
// Nur auf der Hauptseite des Blogs UND nur im Frontend
if ( $query->is_home() && $query->is_main_query() && ! is_admin() ) {
// Kategorien, die ausgeschlossen werden sollen
$exclude = array( XX, XY );
// In WP_Query müssen IDs mit Minuszeichen excluded werden
$query->set( 'cat', '-' . implode( ',-', $exclude ) );
}
}
add_action( 'pre_get_posts', 'allsky_exclude_categories_from_blog' );
Ergebnis
Nach dem Einfügen des Codes erscheinen Beiträge aus den definierten Kategorien nicht mehr im Blog-Feed. Einzelaufrufe und Kategorie-Archive bleiben davon unberührt. Eine einfache, effiziente Lösung für mehr Kontrolle über die Startseite des eigenen Blogs.