WordPress: Single-Seiten von Custom Post Types umleiten
In diesem Beitrag archivieren wir ein Snippet, um Single-Seiten bestimmter Post Types auf eine andere Seite umzuleiten.

Innerhalb einer WordPress-Website wird zum Erstellen von Übersichtsseiten, z. B. von Produkten oder Mitarbeitern meist auf »Custom Post Types« zurückgegriffen. Die einzelnen Beiträge des Post Types werden dann mit Hilfe eines Loops an der gewünschten Stelle auf der Website ausgegeben. Doch nicht immer wird dabei die Single-Ansicht (Detailseite) benötigt. In diesem Beitrag archivieren wir ein Snippet, mit dem ihr die Single-Ansicht, sowie die Vorschau für bestimmte Beitragstypen umleiten könnt. Sowohl im Backend als auch im Frontend.
Umleitungen in WordPress
Um Single-Ansichten von bestimmten Post Types auf eine andere Seite, beispielsweise eine Übersichtsseite weiterzuleiten, könnt ihr folgendes Snippet in eure functions.php
oder ein Plugin einfügen und den Namen des Post Types, sowie der Seite auf die weitergeleitet werden soll austauschen.
function kb_template_redirect()
{
if(is_singular('NAME DES POST TYPES'))
{
wp_redirect( home_url('/SLUG DER ÜBERSICHTSSEITE/') );
exit();
}
}
add_action('template_redirect', 'kb_template_redirect');
Statuscode festlegen
Die verwendete WordPress-Funktion wp_redirect();
erlaubt zwei Parameter: $location
und $status
. Wenn der Code wie oben gezeigt übernommen wird, erzeugt WordPress einen 302-Redirect (temporary redirect). Wenn ein anderer Statuscode gesendet werden soll, so muss das entsprechend angegeben werden. Der nachfolgende Code leitet per 301-Redirect auf die Seite zielseite.html
weiter.
<?php wp_redirect( 'zielseite.html', 301 ); exit; ?>
Vielen, vielen Dank für das Snippet. Ich habe schon eine Weile nach dieser Lösung gesucht, da ich die Singleseiten gern in der Suche ausschließen möchte.
Kann man diese Funktion so umschreiben, dass man sie für mehrere Custom Post Types nutzen kann oder auch Umleitungen für Taxonomies von Custom Post Types erzeugen kann.
Ansonsten müsste man für jedes Custom Posttype eine eigene Funktion machen?
Bin schon sehr gespannt auf die Antwort.
Interessante Sache, ich frage mich nur gerade, in welchem Fall das Sinn macht, also wann man nicht die single-Seite angezeigt haben will, wenn doch ein einzelner post angeklickt wurde?
Hallo Andreas, das Snippet wird immer dann relevant, wenn man die Single-Seiten nicht einzeln aufrufen möchte. Dann sollen sie auch dann nicht erreichbar sein, wenn die direkte URL eingegeben wird. Wir haben ein konkretes Beispiel in unserem „Kunden-Feedback“-Bereich. Jedes Feedback ist ein Single-Post-Type, soll aber nicht einzeln aufgerufen werden: https://kulturbanause.de/agentur/kunden-feedback/
Ah ok, danke für die Antwort.
Ich hätte dafür eine Option in den register_post_type() args erwartet, aber es gibt dort anscheinend wirklich keine.
Super Beitrag, vielen Dank! Hatte schon seit längerer Zeit vor, dies zu machen, kam aber nie richtig dazu.
Freundliche Grüsse,
Arsim Murtezi
Perfekter Beitrag und tolle Idee. Danke für Tipps und ausführliche Information. Die wird auch mir zustatten kommen.