WordPress: Conditional Tags und Stilvorlagen

Alexander Trust, den 4. Februar 2009
Mobile Helden
Mobile Helden – Screenshot

Wer in WordPress unterschiedliche CSS Stilvorlagendateien zu unterschiedlichen Zeitpunkten verwenden möchte, der kann sich dabei mit Conditional Tags aushelfen.

Es gibt einen Standard-Aufruf für die Stilvorlagendatei: bloginfo('stylesheet_url');. Dieser Aufruf gibt an Ort und Stelle sofort den Aufruf der CSS-Datei style.css im Template-Verzeichnis aus. Wollen wir selbst eigene Stilvorlagen in unterschiedlichen Vorlagen nutzen, helfen uns die Conditional Tags von WordPress.

Natürlich bietet bloginfo(); weitere Parameter (vgl. WordPress-Codex), mit deren Hilfe auch andere Informationen ausgegeben werden können. Damit wir selbst aber noch Ergänzungen an der Ausgabe hinzufügen können, nutzen wir stattdessen get_bloginfo(); (vgl. WordPress-Codex). Die „get“-Befehle bei WordPress liefern nur einen konkreten Wert zurück, mit dem man in PHP weiterarbeiten kann, und man kann sie auch außerhalb des WordPress-Loop verwenden.

Head erweitern

In unserem Fall wollen wir auf einzelnen Artikelseiten noch ein zusätzliches Stylesheet namens single.css laden. Wir können nun entweder im Head der single.php Vorlagendatei unseren Aufruf für die CSS-Datei hinzu. Wenn wir aber den Kopf der Datei selbst auslagern, wie WordPress es von Haus aus über die header.php vorsieht, dann müssen wir auf die erwähnten Conditional Tags (vgl. WordPress-Codex) zurückgreifen, um zu entscheiden, ob der „Header“ gerade auf einer Einzelseite angezeigt wird.

Mit dem Ausdruck is_single(); wird abgefragt, ob die derzeit angezeigte Seite eine Artikelseite ist. Für die Startseite, Archivseiten und andere mehr gibt es ebenfalls solche Conditional Tags.

So schaut übrigens der Code aus, der sich im Kopfteil der header.php findet (zwischen <head> … und … </head>):

<?php if (is_single() ) { ?>
<style type="text/css" media="screen">
@import url( <?php echo get_bloginfo('template_directory') . '/single.css'; ?> );
</style>
<?php } else { ?>
<style type="text/css" media="screen">
@import url( <?php bloginfo('stylesheet_url'); ?> );
</style>
<?php } ?>

Ähnliche Nachrichten

Zugehörige Produkte