Support » Allgemeine Fragen » Kategorie Text oben und unten / Sortierung

  • Gelöst madmaxy

    (@madmaxy)


    Hi,

    ich nutze für ein Projekt recht viele Beiträge in Kategorien.

    1. Ich habe meine functions.php soweit verändert, dass ich den TinyMce Editor im „Description“ Feld habe. Die Ausgabe in der category.php mit <?php echo category_description(); ?> funktioniert auch soweit.
    –> Ich würde nun gerne eine 2. Description Box erstellen z.B. category_description2(); und diese gerne im unteren Bereich der Kategorie ausgeben. Sprich: oben und unten in der Kategorie ist ein Einleitungstext/Grafik etc. und die Beiträge im content() Bereich.
    Besteht die Möglichkeit eine 2. Description Box zu erstellen?

    2. WordPress sortiert alphabetisch. Ich weiß, es gibt Plugins. Gibt es jedoch eine Möglichkeit der Sortierung ohne ein Extra Plugin?

    Vielen Dank vorweg.

    lg

    mad

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Du kannst z.B. mit Advanced Custom Fields weitere Felder anlegen. Dazu musst Du bei Advanced Custom Fields unter Position „Taxonomy Term > ist > Kategorie“ angeben. geht sogar mit WSYIWYG-Editor.

    Innerhalb eines Templates kann man mit einer neuen WP_Query() zusätzlich Inhalte abrufen und dabei als Abfrage-Argument auch die Reihenfolge festlegen.

    Das Problem ist nun, dass WordPress schon vor Aufruf des Templates eine Abfrage startet. Nutzt Du in deinem Template statt dessen eine neue WP_Query(), ist diese bereits erfolgte Abfrage umsonst gewesen. Gute Performance ist was anderes.

    Deshalb gibt es den Hook pre_get_posts, mit dem man Abfragen schon im Vorfeld manipulieren kann. Beispiel:

    add_filter( 'pre_get_posts' , 'pix_cat_order' );
    // Function accepting current query
    function pix_cat_order( $query ) {
      if($query->is_archive)
       $query->set( 'order' , 'asc' ); // oder was auch immer …
      return $query;
    }

    Und mit der if-Abfrage steuerst du, wann das greifen soll.

    Top-Lösung von Bego! Inkl. Erklärung warum ein eigener WP_Query zwar geht, aber manchmal pre_get_postsdie bessere Wahl ist. Ich vermisse in diesem Forum manchmal einen Like/Favorite-Button 🙂

    Gruß, Torsten

    Thread-Starter madmaxy

    (@madmaxy)

    Bego, das WordPress „Monster“ 😉

    Danke, großartiger Tipp.

    Ich habe es im Template aber so gelöst:

    $id = ‚category_‘.get_queried_object()->term_id;
    the_field(‚inhalt-unten‘, $id);

    @torsten: Ein Like Button wäre super!

    Ich habe es im Template aber so gelöst: … 

    Hübsch. Das ist der Code, der noch fehlte, um das zweite Beschreibungsfeld abzurufen.
    Hat aber nichts mit der Sortierung deiner Beiträge zu tun. 🙂

    PS: geht auch so: $id = get_query_var('cat'); 😉

    Thread-Starter madmaxy

    (@madmaxy)

    @bego: Gibt es eventuell eine andere Alternative als es mit Advanced Custom Fields zu lösen

    in meiner functions.php ist dieser Code für die category_description zuständig


    add_filter('edit_category_form_fields', 'cat_description');
    function cat_description($tag)
    {
    ?>
    <table class="form-table">
    <tr class="form-field">
    <th scope="row" valign="top"><label for="description"><?php _ex('Beschreibung', 'Taxonomy Description'); ?></label></th>
    <td>
    <?php
    $settings = array('wpautop' => true, 'media_buttons' => true, 'quicktags' => true, 'textarea_rows' => '15', 'textarea_name' => 'description' );
    wp_editor(wp_kses_post($tag->description , ENT_QUOTES, 'UTF-8'), 'cat_description', $settings);
    ?>

    <span class="description"><?php _e('The description is not prominent by default; however, some themes may show it.'); ?></span>
    </td>
    </tr>
    </table>
    <?php
    }

    Ich habe den Code kopiert und einfach jeweils an description „2“ angehangen. Im Admin Bereich konnte ich konnte ich den 2. Editor sehen. jedoch hatte ich im Frontend eine Fehlermeldung, wenn die die category_description2() Funktion aufgerufen habe.

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Das Thema „Kategorie Text oben und unten / Sortierung“ ist für neue Antworten geschlossen.