Problem mit wp_list_pages

  • Hallo alle zusammen,

    ich bin seit Stunden mit folgendem Problem beschäftigt und komme einfach nicht mehr weiter :

    wp_list_pages wird bei mir mit folgenden Parametern aufgerufen :

    <?php wp_list_pages('sort_column=menu_order&title_li= '); ?>, so dass im HTML-Quelltext folgende Form entsteht :

    <ul>
    <li class="pagenav"> <ul><li class="page_item"><a href="" title="" </a></li>
    <li class="page_item"><a href="" title=""></a></li>
    <li class="page_item"><a href="" title=""></a></li>
    <li class="page_item"><a href="" title=""></a></li>
    ... etc.

    </ul></li>
    </ul>

    Doch da ich den Zusatz "Pages" durch das Leerzeichen nach "title_li=" entfernt habe, habe ich nun eine Leerzeile (da dort ja nicht mehr "Pages" steht) über den Seiten, die über wp_list_pages aufgerufen werden ... ihr könnt Euch sicher vorstellen, dass das wirklich übel im Layout aussieht.

    Was kann man da machen ? Habt ihr irgendwelche Tipps ? Weiß jemand von Euch, in welcher Datei "wp_list_pages" formatiert wird ? (<-- die Entfernung des <li class="pagenav">-Tags würde das o.g. Leerzeilen-Problem beheben ...)

    Vielen Dank im Voraus für Eure Hilfe !

    Combo

    Einmal editiert, zuletzt von combo (14. Januar 2006 um 21:00)

    • 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

  • [FONT=Verdana]Nein, genau das ist nicht das Problem ![/FONT]

    [FONT=Verdana]Ich habe geschrieben, dass ich den "Pages"-Zusatz eben NICHT haben will - das eigentliche Problem ist, dass dadurch eine Leerzeile entsteht (dort wo "Pages" stand) und genau diese Leerzeile ist das Problem.[/FONT]

    [FONT=Verdana]Weiß denn niemand, wie ich die Leerzeile entfernen kann oder respektive in welcher Datei "[FONT=Arial]wp_list_pages" zusammengesetzt bzw. mit den <li>-Tags formatiert wird ? :( [/FONT][/FONT]

    Besten Dank im Voraus !

    Combo

    Einmal editiert, zuletzt von combo (15. Januar 2006 um 00:43)

  • Wenn ich das jetzt richtig verstehe, versuch mal mit CSS

    ul,li{
    margin:0;
    padding:0;
    width:0;
    height:0;
    }
    ul li ul{
    margin: X; /*dein Wert*/
    padding: X; /*dein Wert*/
    width: X; /*dein Wert*/
    height:auto;
    }
    ul li ul li{
    margin: X; /*dein Wert*/
    padding: X; /*dein Wert*/
    width: X; /*dein Wert*/
    height:auto;
    }

    Das ganze noch mit einem Kontextselector ausstatten, sonst wirkts auf der ganzen Seite!!!
    Ist deine Navi in DIV id=navi
    dann so #navi ul usw....

    Schau bitte vorher welche Werte schon n der CSS auf entsprechende Elemnte angewandt werden, nutz gegebenenfalls diese dafür.

    N8

  • Eine Änderung der Core-Files würde ich an Deiner Stelle nicht vornehmen, weil diese bei jedem Update nachgezogen werden müßte und das keine wirklich zwangsläuftig notwendige Stelle für Änderungen ist...

    Gehe lieber hin und fange über

    PHP
    <?php
    ob_start();
    wp_list_pages(...);
    $content = ob_get_contents();
    ob_end_clean();

    die Ausgaben ab und pflücke den Output der Funktion anschließend auseinander

    PHP
    $arr = explode('\n', $content);
    // vergewisser dich vorher, das ich hier nicht per zufall elemente wegschmeisse die deinem Template entstammen!
    unset($arr[0]); // sollte das erste <ul> entfernen
    $arr[1] = str_replace('<li class="pagenav"> ', '', $arr[1]); // sollte das erste li rausnehmen
    $arr_cnt = count($arr);
    $arr_del = $arr_cnt - 1;
    unset($arr[$arr_del]); // sollte das letzte </ul> entfernen
    $arr_del = $arr_cnt - 2;
    $arr[$arr_del] = str_replace('</li>', '', $arr[$arr_del]); // sollte das letzte </li> rausnehmen

    anschließend die Ausgabe wieder zusammensetzen und an den Client damit:

    PHP
    $output = implode('\n', $arr);
    echo $output;
    ?>


    ungetestet, aber IMHO einen versuch wert...... bringt den Überschuß nicht nur optisch weg, sondern auch im Quelltext....

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • Zitat von combo

    [FONT=Verdana]Ich habe geschrieben, dass ich den "Pages"-Zusatz eben NICHT haben will - das eigentliche Problem ist, dass dadurch eine Leerzeile entsteht (dort wo "Pages" stand) und genau diese Leerzeile ist das Problem.[/FONT]

    Kein Grund zu schreien. :)

    DU hast mich nicht verstanden. Du hast hinter title_li= ein Leerzeichen eingefügt. Ich schrieb, dieses Leerzeichen wegzulassen, also statt:

    'title_li= '

    nun

    'title_li='

    Man beachte den Unterschied (Noch mal als Hinweis: keine Leerzeichen, sondern GAR NICHTS). Der Quellcode sieht danach so aus:

    [SIZE="2"]<li class="page_item"><a href="http://localhost/wordpress2/archive/" title="Archive">Archive</a></li>
    <li class="page_item"><a href="http://localhost/wordpress2/feedback/" title="Feedback">Feedback</a></li>
    <li class="page_item"><a href="http://localhost/wordpress2/feedback-2/" title="Feedback">Feedback</a></li>
    <li class="page_item"><a href="http://localhost/wordpress2/impressum/" title="Impressum">Impressum</a></li>
    [/SIZE]

    Nun brauchst Du nur noch per CSS die enstprechenden Anpassungen vornehmen (class "page_item") und gut ist. Da brauch ich keine Verrenkungen machen und den Code aufbohren.

    Cheers.

  • Hmmm... nun gut, ein Blick in den Quelltext wirkt manchmal wunder ;) Den Punkt hatte ich mir noch nicht so genau angesehen...

    John hat recht ;)

    Mach's so, wie er's sagt ;)

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • @ jowra

    Ich wollte doch nicht schreien .. sorry :-)

    @ all

    Ich danke Euch für Eure Hilfe ... hab's nun endlich geschafft *freu*

    Danke !!

    Combo

Jetzt mitmachen!

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