• Hallo,

    Ich möchte die Artikel in meinem Lexikon (http://www.alter-suedfriedhof-muenchen.info/) nach einem benutzerdefinierten Feld sortieren. Bei den einzelnen Posts füge ich dafür jeweils ein Feld mit dem Namen 'sortierung' hinzu und trage eine Zahl ein.

    In der functions.php meines Templates habe ich am Anfang - direkt nach <?php - folgendes eingefügt:


    function sortierung_post_order( $query ) {
    if ( $query->is_home || $query->is_search || $query->is_archive ) {
    $query->set( 'orderby', 'meta_value_num', 'meta_key', 'sortierung' );
    $query->set( 'order', 'asc');
    }
    }

    add_action( 'pre_get_posts', 'sortierung_post_order' );


    Funktioniert aber nicht; ich habs mal mit der einfacheren Variante der Sortierung nach 'title' probiert, also ohne 'meta_key'; das hat funktioniert (nützt mir nur leider nichts, da ich dann alle Titel unschön zurechtbiegen müsste).
    Ich habe also wohl einen Fehler in der Syntax, oder der Code ist an der falschen Stelle, oder...

    Kann mir bitte jemand weiterhelfen?

    Danke

    Reiner

    • 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

  • vor dem loop der Datei, die die Anzeige generiert:

    Zitat

    <?php $postid = get_the_ID(); ?>
    <?php global $more; $more = 0; ?>
    <?php $orderby = get_post_meta($postid, 'sortierung', true); ?>
    <?php query_posts( 'orderby='.$orderby.'&paged='.$paged ); ?>

  • wow, das ging aber fix... Danke!

    Leider weiss ich als Dummy aber nichts mit der Aussage "vor dem loop der Datei, die die Anzeige generiert" anzufangen; wo muss ich diesen Code denn einkopieren?

  • Das hängt von deinem Theme ab.
    Suche in deinen Themedateien nach dieser o.ä. Zeile, das ist die erste Zeile eines loop

    Zitat

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

  • Leider gibt es bei meinem Theme (Oita von Elmastudio) keine loop.php - und bei meiner Suche in den anderen phps bin ich bisher nicht fündig geworden. Auch mein Blick auf den endlosen Quelltext der angezeigten Seite hat mich nicht weitergebracht. Ich habe Elmastudio kontaktiert und hoffe, dass die mir weiterhelfen können.
    Vielen Dank für Deine Hilfe!

Jetzt mitmachen!

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