Reihenfolge von Pages bestimmen mit wp_list_pages bzw. menu_order

  • Ich möchte, daß die bei den Pages verteilten Nummern in der Reihenfolge der Navigationsliste berücksichtigt werden.

    Die “Sidebar Widgets” sind aktiviert; somit wird in der sidebar.php nur die dynamic_sidebar aufgerufen. Da kann ich also schonmal nicht dran drehen ...

    Mass edit pages ist ebenfalls aktiviert und es sind Nummern vergeben (menu_order)
    WP 2.1.3

    Um "wp_list_pages" zu ändern, habe ich es gesucht und hier gefunden:

    wp-content/plugins/widgets/widgets.php


    Diese Datei stellt die Funktionalität der Plazierung der Widgets zur Verfügung und ich denke, daß hier auch die richtige Stelle ist, um den Parameter für wp_list_pages zu ändern

    Das ist die entscheidende Stelle im Original, denke ich:

    function widget_pages($args) {
    extract($args);
    $options = get_option('widget_pages');
    $title = empty($options['title']) ? __('Pages') : $options['title'];
    echo $before_widget . $before_title . $title . $after_title . "<ul>\n";
    wp_list_pages("title_li=");
    echo "</ul>\n" . $after_widget;
    }

    Geändert habe ich
    wp_list_pages("title_li=");
    in
    wp_list_pages("sort_column=id&title_li=");

    Das ändert aber nichts :confused:

    Im Netz habe ich verschiedene Varianten gefunden:
    wp_list_pages(”sort_column=menu_order&depth=2&title_li=”);
    oder
    <?php wp_list_pages('sort_column=id&title_li='); ?>

    Eine Idee wäre noch:

    wp_list_pages("sort_column=menu_order&title_li=");

    oder

    wp_list_pages("sort_column=menu_order");

    (Das wäre mein Favorit, aber ich sehe leider auch hier keine Änderung der Reihenfolge)

    Funktioniert alles nicht.

    Ist das ggf. die falsche Stelle? Die Datei scheint mir aber jedesmal geladen zu werden, denn ich konnte Fehlermeldungen provozieren.

    Spielen die Anführungszeichen ggf. eine Rolle? (" vs. ')

    Oder muß ich noch mehr ändern bzw. an anderer Stelle?

    Ich wäre für weiterführende Tipps sehr dankbar!

    • 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

  • Hallo

    ersetze in der sidebar.php in der zeile:

    <?php wp_list_pages('title_li=<h2>' . __('Seiten') . '</h2>' ); ?>

    mit:

    <?php wp_list_pages(' sort_column=menu_order&title_li= <h2>' . __('Seiten') . '</h2>' ); ?>

    Mit freundlichen Grüßen
    wpmx

  • Vielen Dank für den Tipp, aber ich habe ja das Problem, nicht direkt in der sidebar.php editieren zu können, weil dort bei mir nur die Sidebar Widgets eingebunden werden.

    Und die Pages sind leider nicht am Anfang oder am Ende einsortiert, so daß ich mit der php-Zeile das nicht vor oder nach der Widget-Einbindung hinein schummeln könnte.

    Ich bräuchte sozusagen einen Hinweis, wie ich die Funktionalität der Widgets, also die verschiedenen Elemente wie Pages, Links usw. frei in den Sidebars plazieren zu können, beibehalten kann.

    In der o.g. widgets.php ist das list_pages ja in der javascript-funktion definiert
    wp_list_pages("title_li=");

    Ich dachte, da müßte man es ändern können. Aber vielleicht ist das der falsche Ansatz?

  • ... liest sich für mich zumindest richtig.

    Hab zwar noch nie wirklich was mit Widgets angestellt - Aber so vom Lesen her fällt mir da kein Fehler auf. Allenfalls mal statt der Doppelten Anführungszeichen einfache probieren ...? Davon abgesehen hätte ich an Deiner Stelle so ziemlich die gleiche Reihenfolge durchprobiert.

  • Vielen Dank für die Hilfe, ich habe die PHP-Zeile nun doch direkt in die sidebar.php eingebaut. Damit kann ich zwar nicht mehr alles frei plazieren, dafür funktioniert aber jetzt die Reihenfolge mit menu_order ,-)

Jetzt mitmachen!

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