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_posts
die bessere Wahl ist. Ich vermisse in diesem Forum manchmal einen Like/Favorite-Button 🙂
Gruß, Torsten
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');
😉
@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.