WordPress Artikel nicht auf Startseite zeigen
Weil wir in erster Linie einen IT-Blog betreiben, möchten wir auf der Startseite www.top10it.de auch ausschließlich IT-Artikel anzeigen! Würden wir nur IT-Artikel schreiben wäre das ja kein Problem. Da wir aber immer wieder auch andere interessante Themen aufgreifen, haben wir eine Möglichkeit gesucht, diese Artikel nicht auf der Startseite anzuzeigen. Sie werden dann nur in der jeweiligen Kategorie aufgelistet. Google findet die Artikel aber ebenso wie die auf der Frontseite gelisteten.
Es gibt verschiedene Möglichkeiten, einzelne ausgewählte Artikel nicht auf der Startseite anzuzeigen. Hier möchten wir euch die Besten vorstellen.
1. Ultimate Category Excluder – Plugin
Eines der besten und bekanntesten Plugins dafür ist der „Ultimate Category Excluder„. Bei diesem Plugin könnt ihr einzelne Kategorien wahlweise von der Hauptseite ausschließen. Zudem kann man auch Kategorien von den Newsfeeds, von der Archivseite oder von der Suche ausschließen.
Im Bild seht ihr die Settings des Plugins und die Kategorien des Blogs. Dahinter kann man dann einfach einen Hacken setzen um eine gesamte Kategorie „Von der Hauptseite auszuschließen„.
Leider ist es damit nicht möglich, einen einzelnen Artikel von der Startseite zu verbannen (wie dies dennoch geht, zeigen wir in Variante 3)!
2. Artikel durch Kategorieauswahl zuweisen
Im Folgenden möchte ich zeigen, wie man bestimmte Artikel aufgrund einer zusätzlich gewählten Kategorie auf der Startseite platzieren kann. Dafür ist keine Installation eines Plugins notwendig!
Erstellt eine weitere Kategorie z.B. mit der Bezeichnung „Startseite“. Geht dazu auf Beiträge > Kategorien > Neue Kategorie erstellen
Nun muss noch folgende Codezeile in der index.php
vor der Zeile
<?php while (have_posts()) : the_post(); ?>
ergänzt werden
<?php query_posts(‚category_name=Startseite‘); ?>
Und schon werden auf der Startseite (FrontPage) nur noch die Beiträge angezeigt, die auch die Kategorie „Startseite“ beinhalten.
3. Ausgewählte Artikel ausschließen
Zum Schluss zeige ich noch den flexibelste Weg. Hier kann man für jeden Artikel spezifisch & unabhängig von der Kategorie entscheiden, ob er auf der Frontseite anzeigt werden soll, oder nicht.
Auch dieser Weg kann ohne zusätzliche Plugin-Installation nur durch Ergänzen zweier einzelner Code-Zeilen realisiert werden. Bei einem Theme-Update (kommt ja selten vor) sollte die Index.php nicht überschrieben werden. Doch selbst wenn dies versehentlich doch geschieht, kann einfach wieder die zwei Codezeilen einfügen. Die Info, dass der Artikel die Eigenschaft „nicht auf Startseite anzeigen“ hat, bleibt in jedem Fall erhalten, da diese in den Meta-Tags des jeweiligen Artikels gespeichert ist.
Im Editor, beim Schreiben Beitrags, kann man am Ende ein benutzerdefiniertes Feld (Custom Field) anlegen und diesem einen Wert zuweisen. Hier legen wir ein Feld mit der Bezeichnung „Exclude“ an und setzen es auf „true“, wenn der Artikel nicht auf der Hauptseite angezeigt werden soll. Soll der Artikel wie gewohnt angezeigt werden, braucht man nichts zu tun!
Nachdem man das Feld einmal angelegt hat, erscheint es im Pulldown-Menü in der Vorgabe der benutzerdefinierten Felder.
Um nun die zusätzlich erstellten Metadaten entsprechend auszulesen und zu nutzen, ergänzt man in der index.php folgende Code-Zeilen:
Nach der existierende Zeile
<?php while (have_posts()) : the_post(); ?>
ergänzt man
<?php if ( get_post_meta($post->ID, ‚Exclude‘, true) == “) { ?>
und weiter unten vor
<?php endwhile; ?>
Schließt man die Schleife mit
<?php } ?>
Nun könnt ihr anhand der gewünschten Funktion wählen, welcher Weg der für euch passende ist.
4 Replies to “WordPress Artikel nicht auf Startseite zeigen”
Hallo,
in meinem index.php steht leider die Zeile aus Option 3 nicht. Dafür habe ich mehrmals die Zeile in anderen .php-Dateien gefunden. Beispielsweise in page-templates/blog.php
single.php, page.php
Leider funktioniert aber ein Eintrag hier nicht. Stimmt der Code so??
Vielen Dank
Hallo Timo,
du kannst die Option 3 in den php-Dateien integrieren, aus denen die Artikel nicht auf der Startseite erscheinen sollen.
Falls es nicht klappen sollte, kannst du dich gerne nochmal melden…
hi hallo ich grüße dich, bin ja begeistert von deiner page 😀 ich hab folgendes problem: nach einfügen der beiden code-zeilen erhalte ich fehlermeldung. s. unten mfg aus berlin grischan
ID, ‘Exclude‘, true) == ”) { ?>
Erhalte folgende Meldung:
Parse error: syntax error, unexpected “, true) == ”) { ?>‘ (T_CONSTANT_ENCAPSED_STRING) in /homepages/29/d525004599/htdocs/gr55/wp-content/themes/twentythirteen/index.php on line 26
in der line 26 befindet sich:
Vielen Dank für den tollen Tipp „Ultimate Category Excluder“, das war genau das PlugIn, dass ich gerade unbedingt gebraucht habe!
Viele Grüße,
Michael