Jul
23
2009

Artikel einer Kategorie nicht anzeigen lassen

No Gravatar

Natürlich, auch für diesen Fall gibt es natürlich ein passendes WordPress Plugin. Allerdings ist WordPress spätestens seit der Version 2.8 ein echter Ressourcenfresser geworden und da ist jedes nicht installierte Plugin Gold wert. Hier wird in kurzen und einfachen Schritten erklärt, wie man Artikel einer oder mehrerer Kategorien nicht auf der Startseite anzeigen lässt.

Manche Artikel sind es einfach nicht wert auf die Startseite zu gelangen. Manch einer von uns möchte einfach eine bestimmte Kategorie aus anderen Gründen nicht auf der ersten Seite haben. So ging es mir schon immer mit den Ebooks über Social Media Marketing. Hier werden von mir einfach nur die Links zu den jeweiligen Ebooks gesetzt und ein kurzer Begleittext dazu verfasst. Damit möchte ich natürlich nicht jeden Leser gleich auf der Startseite belästigen.

Um das Problem zu lösen habe ich lange den Advanced Category Excluder eingesetzt, der auch immer gute Dienste leistete. Seit dem letzten WordPress Update versuche ich aber immer mehr möglichst wenige Plugins einzusetzen. Der Speed meines Blogs macht mir schon lange zu schaffen und da gibt es noch einigen Optimierungsbedarf. So habe ich mich nach dem passenden Code umgesehen und den will ich gerne mit Euch teilen und möglichst einfach erklären.

  • Kategorien aufrufen unter Artikel
  • Neue Kategorie erstellen bzw. die entsprechende anklicken
  • Nummer der Kategorie herausfinden durch überfahren des Kategorielinks mit der Maus. Die Kategorie ID wird angezeigt, wenn man mit der Maus über den Link fährt. Das kann eine einstellige, aber auch eine mehrstellige Zahl sein.
  • Im Menüpunkt Design den Editor aufrufen und die Datei Theme Functions anklicken
  • Untenstehenden Code vor  “?>”  einfügen. Die entsprechende Kategorie ID natürlich noch im Code (xx durch ID ersetzen) anpassen. Das Minuszeichen muss dabei erhalten bleiben.

Tja, und das war es auch schon. Das einzige was Euch zum erfolgreichen Ausschliessen noch fehlt ist der passende Code.

function exclude_category($query) {
if ( $query->is_home ) {
$query->set(‘cat’, ‘-xx‘);
}
return $query;
}
add_filter(‘pre_get_posts’, ‘exclude_category’);

Wer mehrere Kategorien ausschliessen möchte, der braucht den Code nur ein wenig anzupassen. Durch einfaches Aufzählen der entsprechenden Kategorien funktioniert es genauso klasse wie bei einer.

$query->set(‘cat’, ‘-3 -22 -77 -452′);

Natürlich ist dieser Code nicht von mir, so etwas kann ich leider nicht. Gefunden habe ich ihn bei Locoed, der das Ganze noch ein wenig genauer erklärt. Umgesetzt habe ich es aber dennoch sofort und es funktioniert bestens.

Rock on…

Artikel einer Kategorie nicht anzeigen lassen


Donnerstag, Juli 23rd, 2009, 10:21