WordPress: Conditional Tags und Stilvorlagen

Veröffentlicht am   4. Februar 2009 von  

Screenshot der Mobile Helden-Startseite (auf lokalem Webserver) Ich möchte für Mobile Helden in WordPress mehr als nur eine Stilvorlagendatei verwenden, wie ich bereits schrieb. Der Aufruf der eigentlichen Stilvorlage ist bequem mittels eines Template Tag von WordPress mit Aufruf eines Parameters erledigt, und zwar bloginfo(‘stylesheet_url’);.

Nun bietet bloginfo(); ((vgl. WordPress-Codex unter http://codex.wordpress.org/Template_Tags/bloginfo)) noch weitere Parameter, z. B. einen um das Vorlagenverzeichnis auszuwählen, bzw. anzurufen. ;) Das lässt sich dann allerdings nicht mehr mit einer Erweiterung um den Namen der alternativen Stilvorlagendatei (in dem Fall single.css) verbinden. Zum Glück gibt es da dann noch die alternative Funktion get_bloginfo(); ((vgl. WordPress-Codex unter http://codex.wordpress.org/Template_Tags/get_bloginfo)), mit der sich quasi so etwas wie Rohdaten ausgeben lassen. Diese kann ich dann getrost in PHP weiterverarbeiten und komme so zum Ziel.

Das Problem bei Mobile Helden soll sein, dass die Artikelseite keine Seitenleisten (Sidebars) anbietet, sondern der Artikeltext sich über die komplette Breite erstreckt, in diesem Fall 960 Pixel. Bei variierendem Inhalt ist eine absolute Ausrichtung der Seite, pixelgenau, relativ unmöglich zumindest aber wenig sinnvoll. Wenn die PHP-Vorlage für die Artikelseite single.php nun einen Artikel über die komplette Breite anzeigt, wird bei relativer Ausrichtung der anderen Elemente wie beispielsweise dem Fuß (Footer) ohne Zweifel etwas durcheinander geraten. So zumindest ist es mir ergangen. Drum gehe ich den Weg, separate Stilvorlagen zu verwenden. WordPress bietet mir, bzw. dem Theme-Designer überhaupt ziemlich viele, so genannte “Conditional Tags” ((vgl. WordPress-Codex unter http://codex.wordpress.org/Conditional_Tags)) an, die allesamt zum Abfragen von gewissen Zuständen (Konditionen) dienen, und zwar in “positiver” Weise. 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. Das erlaubt ziemlich viele Unterschiede für die Handhabung der einzelnen Seiten bei WordPress einzupflechten.

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 } ?>

Anbei übrigens auch ein Screenshot der kompletten Startseite. Sie dürfte dem fertigen Produkt schon relativ gut entsprechen. Kritik oder weitere Vorschläge sind natürlich jederzeit willkommen. Derzeit läuft das Ganze nur auf einem lokal installierten Webserver, online ist augenblicklich noch die alte Variante, die mit Drupal realisiert wurde zu finden. Ich möchte aber noch im Februar mit den gröbsten Arbeiten fertig werden, um nicht mehr zu lange mit der Berichterstattung über Handhelds und Mobile Gaming warten zu müssen.

Leave a Reply