ich den folgenden Code haben, der Text in einem Header platziert, basierend auf welchem Teil der Website sind Sie an:Überprüfen Sie, ob Wordpress-Archiv Seite mit allen Beiträgen in Konzept
<h1 class="heading">
<?php
$posttype = get_post_type();
switch ($posttype) {
case "tekenplannen":
echo "Tekenplannen - " . $details[ 'title' ];
break;
case "vacatures":
//check if we are on the archive page
if (is_archive()) {
echo "Open vacatures";
} else {
echo "Vacature - " . $details[ 'title' ];
}
break;
case "object":
if (is_archive()) {
echo "Toonzaal";
} else {
echo $details[ 'title' ];
}
break;
case "nieuws":
//check if we are on the archive page
if (is_archive()) {
echo "Nieuws";
} else {
echo $details[ 'title' ];
}
break;
default:
echo $details[ 'title' ];
break;
}
?>
</h1>
Dieser Code völlig in Ordnung, so lange funktioniert, wie Meine Archivseite hat einen Post veröffentlicht. Stellen Sie sich jetzt vor, dass zum Beispiel mein "vacatures" benutzerdefinierte Post-Typ 4 veröffentlichte Posts hat, mein Header-Titel wird "Vacatures" enthalten, was in Ordnung ist. Stellen Sie sich jetzt vor, dass ich alle meine 4 Posts verstecken möchte, damit sie im "Entwurf" -Modus platziert werden. Wenn ich dann meine Archivseite erneut durchsuche, enthält der Titel den Text "Archive". Warum wird dies nicht von der is_archive() Funktion abgefangen? Wie bekomme ich das?
Vielen Dank im Voraus
Vielen Dank für Ihre Antwort, ich habe meinen Code geändert, das Ergebnis ist immer noch das gleiche obwohl. Es zeigt immer noch "Archives", wenn alle meine Posts im Konzept sind – Dennis
Front-End nur für "veröffentlichen" Post-Status (außer Single-Post-Vorschau), es sei denn, Sie haken die Abfrage Post-Status in Entwurf. Im Standard wird 'get_post_type' den Wert false https://developer.wordpress.org/reference/functions/get_post_type/ zurückgeben, wenn post null ist. Entsprechend Ihrem Switch-Fall wird null auf ** default ** gesetzt. – Jevuska