Northern-Web-Coders

weblog about internet, webdesign and more stuff

Posts in WP + abwechselnde Css

Um Beiträge in WordPress abwechselnd farbig darzustellen,
muss man nur dafür sorgen, dass es nicht nur ein
<div class="post"> gibt,
sondern immer im Wechsel z.B.
<div class="postone"> und
<div class="posttwo">.

Das ganze funktioniert mit diesen Zeilen:
<?php
function post_style() {
static $post_count;
$post_count++;
if ($post_count % 2) {
echo "1";
}
else {
echo "2";
}
}
?>

Diese Zeilen müssen in die index.php des Themes direkt unter:
<?php
get_header();
?>

geschriben werden.

Ein paar Zeile weiter unten steht dann:
<div class="post">
Diese Zeile muss dann nur noch duch diese:
<div class="post<?php post_style(); ?>">
ersetzt werden.

Nun wechseln sich <div class="postone"> und
<div class="posttwo"> ab.

Dann muss noch eine Css-Klasse für beide angelegt werden und es wird bunt ;-)
Ähnlich funktioniert das auch mit den Kommentaren… wie beim Kubrick-Theme…

  1. -lino- sagt:

    Dann würde ich aber gleich eine generische Methode nutzen. Ohne Gewähr:

    function alternate_class($prefix=’post_’,$variants=2) {
    static $data;
    $c =& $data[$prefix];
    echo(${prefix} . $c++ % $variants);
    }

    Pro Dokument darf ein prefix natürlich nur einmal benutzt werden und variants sollte sich auch nicht ändern, obwohl beides bestimmt interessante Effekte ergeben kann. Aber ansonsten sollte das so tun und so kann man mit einer Methode mehrere Sachen gleichzeitig alternieren lassen. Falls das jemand einsetzt oder gar in irgendwas einbaut, was dann veröffentlicht wird: Dürft ihr gerne tun, aber revanchiert euch bitte mit einem Link und/oder einer Erwähnung an passender Stelle. URL sieht man ja hier, alles weitere findet sich unter eben dieser falls nötig.

  2. jaman sagt:

    @lino
    du hast recht… deine variante ist wohl schneller.
    aber bei meiner variante kann man noch bestimmen, ob jede 2te oder 3te usw anders aussehen bzw. einen andere postclass bekommt :wink:

  3. jaman sagt:

    @olli
    öffne mal die datei wp-content/themes/beetlefrosch/style.css
    und such nach .post.
    dann musst du halt nur die 2 klassen anlegen, die du mit dem echo erstellst.
    bsp.: .postone und .posttwo oder so…

  4. olli sagt:

    Kannste Du mir bitte mal nen Tip geben, was ich in die CSS-Datei eintragen muss und wo? Habe leider wenig Ahnung von der Materie :???:

  5. -lino- sagt:

    Etwas kürzer, schöner und soweit ich weiß auch schneller und resourcensparender (auch wenn das bei so kleinen Funktionen kaum auffällt):

    function post_style() {
    static $style;
    echo $style = (‘postone’ == $style ? ‘posttwo’ : ‘postone’);
    }