Wie erkennt man single.php (aber nicht single-portal.php)?

8

Wenn ich is_single();in meinem <head>Abschnitt einen Stil zur Website-Navigation hinzufüge, wird er in Blog-Posts korrekt ausgeführt, aber auch in einzelnen Posts vom Typ "Portfolio" (also single-portal.php und single.php).

Wie kann ich es nur auf single.php ausführen lassen?

Paul
quelle

Antworten:

23

Sie können stattdessen Folgendes verwenden:

if (is_singular('post')) {

    //your code here...

}

Wobei by is_singulardie bedingte WordPress-API-Funktion zum Testen der Existenz eines Beitragstyps ist. Sie können auch eine Reihe von Beitragstypen übergeben, wenn Sie dies wünschen.

http://codex.wordpress.org/Function_Reference/is_singular

Adam
quelle
1
Das ist eine weitere sehr gute Antwort! Beide Antworten lösen dieses Problem. Dieser scheint einfacher zu sein. Vielen Dank!
Paul
1
Vielen Dank, immer am besten, integrierte Funktionen zu verwenden. Ich denke, das sollte die akzeptierte Antwort sein.
Simon
7

Sie könnten etwas wie versuchen (http://codex.wordpress.org/Function_Reference/get_post_type):

um zu überprüfen, ob es sich nicht um einen bestimmten Post-Typ handelt:

if ( is_single() && 'portfolio' != get_post_type() ) {
  // DO STUFF
}

oder um zu überprüfen, ob es sich um einen Beitrag und nicht um einen Beitragstyp handelt:

if ( is_single() && 'post' == get_post_type() ) {
  // DO STUFF
}
Simon
quelle
Vielen Dank! Das löst mein Problem, ABER was ist, wenn ich "Diashow", "Nachrichten", "Portfolio" und viel mehr Beitragstypen habe? Einige können mithilfe von Plugins erweitert werden, und ich bin mir nicht sicher, wie viele es geben wird und wie sie heißen werden. Gibt es eine Möglichkeit, dies zu tun, ohne nur "Portfolio" auszuschließen, aber alles, was kein Blog-Beitrag ist?
Paul
@Flow: Verwenden Sie diese Option, um get_post_type()nach zu suchen 'post'.
Geert
Ich habe meine Antwort aktualisiert ^^
Simon