Wordpress Performance Wordpress SEO Wordpress Security Wordpress Themes Wordpress Hosting Mein Setup Das Buch

Artikel bestimmter Kategorien aus dem Loop entfernen

Wordpress WP FastWP Snippets Tricks Hosting Plugins News Performance Speed

Artikel aus dem Loop entfernen

Manchmal kann es von Vorteil sein, wenn bestimmte Artikel einer Kategorie nicht im Loop auf der Hauptseite angezeigt werden. Ein Beispiel wären Videos, die nicht direkt im Index erscheinen sollen, sondern mit einer News entsprechend verlinkt werden. Dumm nur, dass WordPress immer alle Artikel auf der Hauptseite anzeigt, egal was gewünscht ist. Ein Snippet ermöglicht es nun allerdings, bestimmte Kategorien aus dem Loop zu entfernen, so dass deren Posts auch nicht auf der Hauptseite erscheinen. Durchaus nützlich und eigentlich ganz einfach.

Folgendes in die functions.php eures Themes kopieren:

function nocat($query) {
  if($query->is_home() && $query->is_main_query()) {
    $query->set('cat', '-1');
  }
}
add_action('pre_get_posts', 'nocat');

Kleine Anpassungen notwendig

Damit das Snippet vernünftig und korrekt funktioniert, müsst ihr in Zeile 3 die ID eurer Kategorie einfügen. Dort wo die eins steht, muss die ID der gewünschten Kategorie hin, dessen Artikel nicht auf der Hauptseite erscheinen sollen. Dafür, dass die Artikel nur auf der Hauptseite nicht angezeigt werden, sorgt das is_home(), welches natürlich ebenfalls mit einem anderen Tag verändert werden kann. Also einfach die Kategorie bzw. deren ID eintragen und schon ist das Snippet angepasst. Die ID einer Kategorie erfahrt ihr übrigens, wenn ihr im Kategorie-Erstellen Bereich eine Kategorie zum bearbeiten anklickt. Nach dem anklicken steht die ID oben in der URL.



Wordpress Performance eBook