• Ich habe mit CPT UI einen neuen Inhaltstyp „Pflanzen“ vom Typ post erstellt. Zu diesem Inhhaltstyp gibt es die hierarchische Taxonomie „Pflanzenkategorie“.

    Wenn ich nun mit Menü auf die jeweiligen Pflanzenkategorie verweise, werden die Beiträge, wie immer in WordPress, chronologisch mit dem neusten Beitrag oben angezeigt.

    Ich möchte nun aber in allen Pflanzenkategorien ein alphabetische Ausgabe erzwingen.

    Mit folgender Ergänzung in der functions.php erziele ich leider keine Erfolge:

    add_action( 'pre_get_posts', 'pflanzen_abc' );
    function pflanzen_abc( $query ) {
      if ( $query->is_term( '' ) ) {
        $query->set( 'orderby', 'title' );
        $query->set('order', 'ASC');
      }
    }
Ansicht von 8 Antworten – 1 bis 8 (von insgesamt 8)
  • Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Hast du mal $query->is_term() probiert?
    Ich würde das weiter einschränken, dass die Funktion nur für den Custom Post Type ausgeführt wird.

    Noch ein Tipp: Wir helfen hier gerne bei Anwendungs-Fragen. Bei Fragen zur Programmierung bist du bei WordPress Stackexchange besser aufgehoben.

    Thread-Starter thorsten bachner

    (@tbachner)

    Sehr geil das war es:

    add_action( 'pre_get_posts', 'pflanzen_abc' );
    function pflanzen_abc( $query ) {
      	$query->is_term();
        $query->set( 'orderby', 'title' );
        $query->set('order', 'ASC');
      }

    Danke auch für den Hinweis WordPress Stackexchange


    Moderationshinweis: Hier fehlt das if-Statement. 🙂

    • Diese Antwort wurde geändert vor 2 Jahren, 3 Monaten von Bego Mario Garde. Grund: Code formatiert
    • Diese Antwort wurde vor 2 Jahren, 3 Monaten von Bego Mario Garde geändert.
    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Nur gilt die Sortierreihenfolge dann automatisch für alle Inhaltstypen, weshalb ich das weiter eingrenzen würde. Wahrscheinlich soll das auch nur das Front-End und auch nur die Hauptabfrage betreffen? Sinngemäß (soll heißen: nicht geprüft):

    add_action( 'pre_get_posts', 'pflanzen_abc' );
    function pflanzen_abc( $query ) {
      if( ! is_admin() && 
          in_array ( $query->get('post_type'),
          array('pflanzen','pilze') &&
          is_main_query() &&
          $query->is_term() ) {
            $query->set( 'orderby', 'title' );
            $query->set('order', 'ASC');
          }
    }
    Thread-Starter thorsten bachner

    (@tbachner)

    Das ist richtig. Es sol nur für den unhaltstyp Pflanzen und nicht für normale Beiträge gültig sein. Wenn ich das allerdins so in die functions.php übernehme verabschiedet sich WP.

    und mit der if Anfrage funktionieert die Sortierung leider gar nicht mehr

    add_action( 'pre_get_posts', 'pflanzen_abc' );
    
    function pflanzen_abc( $query ) {
      if ( $query->is_term( 'pflanzen' ) ) {
        $query->set( 'orderby', 'title' );
        $query->set('order', 'ASC');
      }
    }
    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Wenn ich das allerdins so in die functions.php übernehme verabschiedet sich WP.

    Du hast das schon noch angepasst? Wahrscheinlich hast du keinen Post-Type „Pilze“.

    und mit der if Anfrage funktionieert die Sortierung leider gar nicht mehr

    Hm, pflanzen ist ja auch kein „Begriff“ (term) der Custom Taxonomy?

    Nehmen wir an, du hast als Custom Taxonomy den standort der Pflanzen gewählt. Dann könntest du folgenden Code verwenden:

    function sort_posts_alphabetically_on_standort_archives( $query ) {
      if ( $query->is_main_query() && $query->is_tax('standort') ) {
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC' );
      }
    }
    add_action( 'pre_get_posts', 'sort_posts_alphabetically_on_country_archives' );

    Rufst du dann https://example.com/standort/sonnig auf, werden die Beiträge alphabetisch sortiert.

    Thread-Starter thorsten bachner

    (@tbachner)

    Vielen Dank. So hat es funktioniert.

    function sort_pflanzen_alphabetically( $query ) {
          if ( $query->is_main_query() && $query->is_tax('pflanzenkategorie') ) {
            $query->set( 'orderby', 'title' );
            $query->set( 'order', 'ASC' );
          }
        }
    
    add_action( 'pre_get_posts', 'sort_pflanzen_alphabetically' );
    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Prima. Dann spricht sicher nichts dagegen, den Thread als „gelöst“ zu markieren?
    Denkst du da demnächst bitte selber dran? Danke.

    Thread-Starter thorsten bachner

    (@tbachner)

    Gerne. Beim nächsten Mal denke ich dran.

Ansicht von 8 Antworten – 1 bis 8 (von insgesamt 8)
  • Das Thema „Beitragssortierung in einer individellen Taxonomie“ ist für neue Antworten geschlossen.