Was tun, wenn Sie einen WordPress Beitrag nicht anzeigen wollen?

WordPress Beitrag nicht anzeigen
Eine CSS-Definition, und schon ist der Beitrag nicht mehr zu sehen

Es kann gute Gründe geben, dass Sie an einer bestimmten Stelle einen Beitrag nicht anzeigen wollen. Sagen wir auf Ihrer Startseite, die ansonsten alle Beiträge ausgibt. Doch dieser eine hat in Ihren Augen auf der Startseite nichts verloren. Oder es geht Ihnen so wie meiner Kundin, die nicht länger Ihre Empfehlung für einen anderen Anbieter aussprechen möchte. Der entsprechende Beitrag soll auf ihrer Website also nicht länger erscheinen. Natürlich könnte sie den einfach löschen. Doch ist das Löschen nicht die beste Lösung, damit haben wir uns hier schon beschäftigt. Was also tun?

WordPress Beitrag nicht anzeigen … auf der Startseite

Sagen wir, Ihre Startseite ist keine statische, sondern zeigt alle Beiträge an. Die Grundeinstellung hierfür ist denkbar einfach: Unter Einstellungen > Lesen wählen Sie für Startseite zeigt die Option Deine letzten Beiträge. Schon funktioniert die Startseite wie die Blogseite: Sie zeigt automatisch alle Beiträge jedweder Kategorie an, den aktuellsten zuoberst.

Grundsätzlich funktioniert dieses Prinzip für Sie wunderbar, doch nun haben Sie einen Beitrag verfasst, den Sie dort nicht ausgeben wollen. Der einfachste Weg führt hier mal wieder über ein Plugin: WP Hide Post. Nach der Installation stellt das Plugin in der Beitragsbearbeitung eine Meta Box bereit, mit der Sie festlegen können, wo der jeweilige Beitrag nicht erscheinen soll:

  • Startseite
  • Kategorieseiten
  • Schlagwortseiten
  • Autorenseiten
  • Datumsseiten
  • Suchergebnisseiten
  • Feed

Wählen Sie für Ihren Beitrag »Hide on the front page«, und schon wird der Beitrag überall angezeigt, nur eben nicht länger auf Ihrer Startseite. Wählen Sie alle Optionen, erscheint Ihr Beitrag prinzipiell nirgendwo mehr. Und doch kann es sein, dass es noch so einige Fundstellen gibt.

So ist der Beitrag über seine Beitragsseite noch immer aufrufbar. Wer den Link kennt, kann den Beitrag lesen. Das ist in den meisten Fällen sicherlich auch sinnvoll. In meinem Fall jedoch nicht.

Auch beeinflusst das Plugin keine anderweitigen Abfragen. Ob diese nun in der entsprechenden PHP-Datei von Hand geschrieben ist oder wie in meinem Fall über das Plugin Posts in Page realisiert ist: Die Ausgabe funktioniert noch immer wunderbar. Ich muss mir also etwas anderes einfallen lassen.

WordPress Beitrag nicht anzeigen – mit CSS-Definition

Die einfachste Möglichkeit, einen Beitrag nicht mehr anzeigen zu lassen, funktioniert per CSS. Alles, was Sie dazu brauchen, ist die Möglichkeit des benutzerdefinierten CSS. Sei es im Rahmen Ihres Themes oder durch das Plugin Simple Custom CSS. Ferner benötigen Sie die ID des betreffenden Beitrags. Die erhalten Sie, wenn Sie in die Beitragsbearbeitung gehen und sich die Adresse in der Adresszeile Ihres Browsers anschauen. Dort steht so etwas wie …/wp-admin/post.php?post=… Die Ziffern, die dann folgen, stellen die ID des Beitrags dar. Sagen wir, dort steht …post=123…

Jetzt können Sie diesen Beitrag konkret ansprechen:

.post-123 {display:none;}

Wollen Sie den Beitrag nur auf der Startseite nicht ausgeben, lautet die Definition:

.home .post-123 {display:none;}

 

Doch was passiert, wenn Sie den Permalink des Beitrags, den Sie nicht nur auf Ihrer Startseite nicht mehr ausgeben wollen, aufrufen?

Einen Beitrag per CSS ausblenden
display:none allein ist nicht die Lösung

Der Link funktioniert noch und zeigt eine mehr oder weniger leere Seite, der eigentlich nur der konkrete Beitragsinhalt fehlt. Schön ist das nicht. Und für meine Kundin wäre es auch gar nicht hilfreich, wenn Ihre Empfehlung eine nahezu leere Seite ausgibt. Deshalb bleibt nichts anderes übrig, als zusätzlich eine 301-Weiterleitung einzurichten. Am einfachsten funktioniert das mit dem Plugin Page Links To. Wer den Beitrag nun über seinen alten Permalink aufruft, landet dann auf der Seite, die Sie mittels des Plugins hinterlegen. Im Fall meiner Kundin wäre das die Seite, auf der sie alle Anbieter auflistet, die sie ihren Kunden empfiehlt.

CSS-Definition bei Benutzung des Plugins Posts in Page

Wenn Sie das Plugin Posts in Page benutzen, funktioniert die oben genannte CSS-Definition übrigens nur, sofern Sie ein Template für die Darstellungsweise der Beiträge hinterlegt haben! Ohne ein solches Template ignoriert das Plugin Ihre Definition und gibt die Beiträge weiterhin auf der Seite aus. Siehe hierzu auch unseren Beitrag zu Posts in Page.

WordPress Beitrag nicht anzeigen mittels PHP-Abfrage

Sollten Sie Ihre Abfragen im Rahmen einer PHP-Datei selbst geschrieben haben, ist es durchaus möglich, hier zu hinterlegen, dass einer oder mehrere konkrete Beiträge nicht ausgegeben werden sollen.

Sagen wir, Sie möchten wie auf einer Blogseite alle Beiträge – gleich welcher Kategorie – anzeigen, nur eben die beiden Beiträge mit den IDs 123 und 124 nicht. Die Abfrage, die vor dem Loops steht, würde in diesem Fall lauten:

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

$args = array(

'paged' => $paged,
'posts_per_page' => 10,
'post__not_in' => array( 123,124 )

);

query_posts($args); ?>

Anderes Beispiel: Sie wollen alle Beiträge der Kategorie blog ausgeben, nur eben nicht die beiden Beiträge 123 und 124. Dann lautet die Abfrage vor dem Loop:

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

$args = array(

'category_name' => 'blog',
'paged' => $paged,
'posts_per_page' => 10,
'post__not_in' => array( 123,124 )

);

query_posts($args); ?>

Zusammenfassung

So oder so: Wenn Sie einen WordPress Beitrag nicht anzeigen lassen wollen, müssen Sie sich über die unterschiedlichen Stellen bewusst sein, an denen so ein Beitrag normalerweise erscheint (Kategorie, Schlagwort, Autor etc., aber auch Suchergebnisseite). Ohne Nutzung von Plugins wie Posts in Page oder manuellen PHP-Abfragen funktioniert das Plugin WP Hide Post durchaus gut. Aber auch die CSS-Definition ist ein probates Mittel. Hier braucht es aber zusätzlich noch eine 301-Weiterleitung. So ersparen Sie sich auch eine unschöne 404-Fehlermeldung.


Beitragsbild: Britta Kretschmer