Kategorien
BlogIntern Technikfreaks

Jetzt mal ohne Spass

… kommen wir zum Ernst der Lage.

Wer in den letzten Tagen meinen Blog aufgerufen hat, dem wird aufgefallen sein, dass die ganzen „Witze der Woche“ und anderen Spaßigkeiten nicht mehr auf der Startseite sichtbar sind. Dem aufmerksamen Leser wird dabei aber aufgefallen sein, dass im Menü oben nun aber ein weiterer Punkt namens „Lustiges“ hinzugekommen ist.

Lange Rede – kurzer Sinn: Ich habe sämtliche Beiträge der Kategorie „Lustig Lustig tralalala“ und deren Unterkategorien „Witze“ und „Videos“ aus der index.php verbannt und in eine eigene Seite mit eigenem Template verlagert.

Um ohne ein zusätzliches Plugin zu erreichen, dass die Beiträge der genannten Kategorien aus der Startseite ausgeklammert werden, musste ich die ledglich die functions.php um die folgende Funktion erweitern:

function exclude_category($query) {
   if ( $query->is_home ) {
      $query->set('cat', '-11 -112 -113');
   }
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

(Quelle: Locoed Web Development)

Die Zahlen in der Funktion (hier als 11, 112 u. 113 angegeben) entsprechen den Kategorie-IDs in diesem Blog.

Als zweiten Schritt habe ich also eine separates Seiten-Template für die künftige „Lustiges“-Seite erzeugt und den Passus

<?php if ( have_posts() ) :
…
while ( have_posts() ) : the_post(); ?>

durch diesen angepassten Aufruf ersetzt:

<?php if ( have_posts() ) :
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('cat=11,112,113&posts_per_page=5&paged='.$paged);

while ( have_posts() ) : the_post(); ?>

Natürlich ist auch dieser Tipp nicht auf meinem Mist gewachsen, sondern ich habe mich an Frank Bültges Beitrag „WordPress Query Quick Tipps“ orientiert. Wie ihr seht, tauchen hier nun wieder die Kategorie-IDs auf, die ich hier ja nun explizit anzeigen lassen will.

Über die Anpassung hinaus, habe ich ansonsten mein „normales“ Archiv-Template (archive.php) für den restlichen Aufbau der Seite verwendet, allerdings mit kleinen Anpassungen was die Darstellung der Beiträge betrifft (z.B. the_content() statt the_excerpt)

Es wird also weiterhin einen Witz der Woche und andere Lustige Inhalte im Blog geben, sie werden nur nicht mehr direkt auf der Startseite zu finden sein.

Update 28.02.2011
Offenbar hat sich mit WP 3.1 etwas an den Aufrufen und/oder Parametern geändert, den seit dem Update auf Version 3.1 funktioniert das „Ausblenden“ nicht mehr.
Muss jetzt erstmal auf die Suche gehen, WAS ich nun WO ändern muss.

Update 2

Habe das ganze nun ganz anders gelöst. In der index.php habe ich folgende Ergänzung gemacht

<?php if (is_home()): query_posts($query_string . 'cat=-11,-112,-113'); endif; ?>
…
<?php if (have_posts()) : ?>
…

(Quelle: WordPress Codex)
und habe dadurch den ganzen Abschnitt aus der functions.php rausgeworfen.