Liste mit abwechselnder Farbe

  • Auf meiner alten Webseite, seihe z.B. Matthias Pospiech > Latex > Programme
    ändere ich die Farbe der Listenelemente mit

    PHP
    <?php
    $num = $num +1;
    $color = ( $num % 2 == 0 ) ? "odd" : "even";
    //echo '<li class="'.$color.'">';
    echo 'class="'.$color.'"';
    ?>

    wenn ich den gleichen Code, d.h.

    PHP
    <li <?php include 'php/altlistcolor.php';?>>

    in wordpress einfüge und mit runPHP aktiviere, dann ist $num immer gleich 1.

    Wie löse ich das dann cleverer oder überhaupt ?

    Matthias

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich geh mal davon aus das du dies <?php include 'php/altlistcolor.php';?> dann immer in deinen Code reinkopierst!?
    Dann kopier doch gleich class="odd" in jeden 2. Punkt. Dann der UL eine Klasse (format) und dies in die CSS

    HTML
    ul.format li{
    color:green;
    }
    ul.format li.odd{
    color:red;
    }
  • Ich geh mal davon aus das du dies <?php include 'php/altlistcolor.php';?> dann immer in deinen Code reinkopierst!?
    Dann kopier doch gleich class="odd" in jeden 2. Punkt. Dann der UL eine Klasse (format) und dies in die CSS


    Das das auch per Hand geht ist mir selbstverständlich klar, und eine CSS Klasse gibt es auch. Nur will ich es gerade _nicht_ selbst machen, da ich dann beim umkopieren alle darunterliegenden Punkte wieder ändern müsste.
    In meiner Handgeschriebenen Webseite funktioniert das ganze auch hervorragend, nur innerhalb von wordpress nicht.

    Ich vermute das PHP so aufgerufen wird, dass die vorherige Variable nicht mehr bekannt ist - und dazu benötige ich eine Lösung. Oder am besten gleich eine Vorlage für ein Plugin das das für mich erledigt.

    Matthias

  • Sorry, kenn ja nicht deinen Background ;)
    PHP geht da nicht, wie willst du die Lis zählen wenn du sie nicht mit PHP erzeugst.


    gar nicht.

    Auf Matthias Pospiech wird das ganze über


    erzeugt.
    Dazu muss ich überhaupt nicht wissen wieviele li vorher oder nacher waren. Ich will nur einen Zähler in PHP haben den ich hochzähle und je nach (zähler mod 2) = 0 'even' oder 'odd' setzte.

    Matthias

  • Nochmal Sorry ;)
    Du fragtest dies "Wie löse ich das dann cleverer oder überhaupt ?"
    Was du vorhast ist in meinen Augen nicht clever :)

    Wenn dein Script läuft musst du das wieder in jede LI reinkopieren, warum dann nicht gleich die Klasse reinkopieren? Das war mein Part zum "überhaupt" :mrgreen:

  • Nochmal Sorry ;)
    Du fragtest dies "Wie löse ich das dann cleverer oder überhaupt ?"
    Was du vorhast ist in meinen Augen nicht clever :)


    Gut, dann ist meine Frage wie ich diese nicht clevere Lösung zum laufen bekommen - oder eine clevere aber automatische Lösung implementiere.

    Und warum wird der Zähler $num bei jedem aufruf des Skriptes neu initialisiert, bzw. wie mache ich diesen Global?

    Matthias

  • Woher kommen denn die Listenelemente, fügst du die manuell ein, werden die irgendwo erzeugt?


    Die Listenelemente werden ganz normal im Wordpress Editor eingegeben. Da ich die Seiten aber häufiger erweitere oder Elemente wegnehmen möchte ich nicht jedesmal die Reihenfolge der odd/even korrigieren müssen.

    Und die jetzige Form, wie oben gepostet ist genauso auf meiner alten Webseite (ohne wordpress, nur html+css+php) umgesetzt.

    Ich würde die Struktur der Listenelemente auch in eine andere ändern, solang die grundsätzliche Automatik dadurch nicht verloren geht. z.B. durch eine Plugin das einen Eintrag <li class="EvenOrOdd"> ersetzen würde durch den richtigen Eintrag.

    Matthias

  • Du müsstest Dir eine "Filterfunktion" programmieren und als PlugIn abspeichern

    Also irgendetwas, das die Ausgabe von "the_content();" abfängt, die listenpunkte findet, ihnen eine entsprechende CSS-Klasse verpasst - und das dann wieder zurückgibt.

    Das sieht prinzipiell so aus:

    Code
    function meinFilter($input) {
    $output = .....blablabla mach irgendwas mit $input;
    return($output);
    }
    
    
    add_filter('the_content', 'meinFilter');

    ... das dürfte aber ein ziemliches Gefummel mit regulären Ausdrücken etc. werden. Ich kann mir allerdings vorstellen, dass man sich aus einigen Code-Anzeige-PlugIns dabei ein bisschen was "abgucken" kann, sieht man ja auch in einigen Blogs manchmal, dass dort Zeilen numeriert sind ... oder abwechselnd eingefärbt ...

  • Die Listenelemente werden ganz normal im Wordpress Editor eingegeben. Da ich die Seiten aber häufiger erweitere oder Elemente wegnehmen möchte ich nicht jedesmal die Reihenfolge der odd/even korrigieren müssen.

    Und die jetzige Form, wie oben gepostet ist genauso auf meiner alten Webseite (ohne wordpress, nur html+css+php) umgesetzt.

    Ich würde die Struktur der Listenelemente auch in eine andere ändern, solang die grundsätzliche Automatik dadurch nicht verloren geht. z.B. durch eine Plugin das einen Eintrag <li class="EvenOrOdd"> ersetzen würde durch den richtigen Eintrag.

    Matthias

    suche Dir das PLugin QUicktags von Bueltge.de

    verwende NICHT den what you see is what you get editor und Du kannst mir einem Klick mal li mit class hellblau und einmal mit li mit class rosarot einbauen

    lg

  • ... und Du kannst mir einem Klick mal li mit class hellblau und einmal mit li mit class rosarot einbauen


    Danke für den Hinweiß (ich kenne das plugin), aber ich bin nicht an einer manuellen Lösung interessiert.

    Du müsstest Dir eine "Filterfunktion" programmieren und als PlugIn abspeichern
    Also irgendetwas, das die Ausgabe von "the_content();" abfängt, die listenpunkte findet, ihnen eine entsprechende CSS-Klasse verpasst - und das dann wieder zurückgibt.

    Z.B. so ?

    Das Plugin verhindert jedoch bei ALLEN Seite die Ausgabe des Seiteninhaltes. Ich habe jedoch nicht den geringsten Plan warum das so ist. Bitte daher um Hilfe bei der Entwicklung dieses simplen Plugins.

    Matthias

    Einmal editiert, zuletzt von pospiech (17. Mai 2007 um 17:54)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!