Template Hierarchie und dynamische Inhalte

  • Aktuell erstelle ich mit Hilfe von Wordpress eine Produkt-Webseite. Leider funktioniert noch nicht alles so, wie ich es mir wünsche. Deshalb tauchen für mich eine Frage auf, die auch Google bisher nicht beantworten konnte. Ich hoffe, ihr könnt mir helfen :-)

    Ich habe in der index.php nur statischen Text. Ich verwende aber trotzdem keine home.php, weil ich dann nicht wüsste, was ich mit der index.php machen soll. Frage: muss die index.php dynamischen Inhalt haben, um korrekt zu funktionieren?

    • 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

  • auf die index.php wird immer dann zurueckgegriffen, wenn nach der template hierachy ( http://codex.wordpress.org/Template_Hierarchy ) keine andere zustaendige template-datei gefunden wird.
    index.php kann leer sein, wenn alles mit anderen templates abgesichert ist (und ist das auch in einigen wenigen themes).


    Ok super, dann läuft's bei mir. Eine andere Sache, die ich nicht verstehe: Wordpress generiert immer automatisch Klassen. Zum Beispiel werden für

    PHP
    <?php wp_list_categories('title_li=&orderby=name'); ?>

    automatisch immer

    Code
    class="cat-item cat-item-4"

    vergeben. Das brauche ich allerdings überhaupt nicht und würde es gerne "löschen". Kann mir jemand sagen, wie man das macht?

  • a:
    diese css classen sind u.a. dazu da, die aktive kategory (und vorfahren) hervorzuheben (zB .current-cat-item; .current-cat-ancestor)

    http://codex.wordpress.org/Template_Tags/…_Category_Lists

    b:
    entfernen kannst du die zB mit einem filter; in functions.php des themes eingesetzt:

    PHP
    add_filter ( 'wp_list_categories', 'strip_css_classes' );
    function strip_css_classes( $list ) {
    $bits = explode('>', $list);
    $regex = '#( class[=]("|\'))(.*)(("|\'))#e';
    foreach( $bits as $bit ) {
    $bitn[] = preg_replace($regex, "('')", $bit );
    }
    $list = implode('>', $bitn);
    return $list;
    }



    http://codex.wordpress.org/Plugin_API/Filter_Reference


  • Ok. Habe mich mal damit beschäftigt - letztendlich aber nicht verstanden. Der Code funktioniert, um die automatischen Klassen für "wp_list_categories" zu entfernen. Jetzt brauche ich noch einen Code, um die automatischen Klassen für "wp_list_pages" zu entfernen. Habe folgendes versucht - ist aber falsch. Kann mir bitte noch mal jemand helfen?

    PHP
    add_filter ( 'wp_list_pages', 'strip_css_classes' );
    function strip_css_classes( $list ) {
    $bits = explode('>', $list);
    $regex = '#( class[=]("|\'))(.*)(("|\'))#e';
    foreach( $bits as $bit ) {
    $bitn[] = preg_replace($regex, "('')", $bit );
    }
    $list = implode('>', $bitn);
    return $list;
    }
  • keine sorge - preg_replace verstehe ich auch nicht.

    leider hast du nicht beschrieben, was da falsch ist.

    ich vermute, eine fehlermeldung, die wahrscheinlich davon kommt, dass die funktion schon fuer die kategorienliste definert ist.

    diese zeile allein zusaetzlich koennte ausreichen:

    PHP
    add_filter ( 'wp_list_pages', 'strip_css_classes' );



    das ganze zusammen:



    ps: es gibt ueberhaupt keinen grund, meine antworten hier jedesmal zu zitieren, weils es keine moeglichkeit gibt, hier irgendetwas falsch zu verstehen.
    ich mag diese 'zitiererei' naemlich nicht :-(

Jetzt mitmachen!

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