the_tags (): Zeigt die Tags in der Reihenfolge an, in der sie im Backend eingegeben wurden, nicht alphabetisch

Ich verwende WordPress ‘ the_tags() , um die Tags jedes the_tags() auf einer Seite anzuzeigen. Ich beabsichtige, die Tags in der Reihenfolge anzuzeigen, in der sie im Backend eingegeben wurden, und nicht in alphabetischer Reihenfolge. Der WordPress-Codex scheint kein Argument zu haben, um the_tags() zu sortieren, und die Ausgabe erfolgt immer in alphabetischer Reihenfolge.

Hat jemand von euch einen Tipp?

Solutions Collecting From Web of "the_tags (): Zeigt die Tags in der Reihenfolge an, in der sie im Backend eingegeben wurden, nicht alphabetisch"

Folge dem weißen Hasen:

  1. the_tags()
  2. get_the_tag_list()
  3. get_the_term_list()
  4. get_the_terms()
  5. wp_get_object_terms()

Wenn Sie diese letzte function durchsehen, sollten Sie folgendes sehen:

 $defaults = array('orderby' => 'name', 'order' => 'ASC', 'fields' => 'all'); 

Sie sollten standardmäßig eine alphabetische Reihenfolge haben. Und nein, ich sehe keine Filter, mit denen Sie die Abfrage direkt ändern könnten, aber es gibt mehrere Filter in diesem Kaninchenloch. Der wp_get_object_terms Filter sieht für mich wie ein guter aus.

 // you will probably need to run this once to reset the cache // wp_cache_flush(); function id_ordered_tags_wpse_144703($terms, $object_ids, $taxonomies, $args) { $taxonomies = explode(',',$taxonomies); // quoted and comma seperated string if (1 < count($taxonomies) && !in_array("'post_tag'",$taxonomies)) return $terms; $sorted = array(); foreach ($terms as $term) { $sorted[$term->term_id] = $term; } ksort($sorted); return $sorted; } add_filter('wp_get_object_terms','id_ordered_tags_wpse_144703',10,4); // test it the_tags(); 

Wo Sie diesen Code hinzufügen, hängt vom Kontext ab. In function.php würde function.php würde aber funktionieren, wäre aber nur auf das Thema beschränkt, dem du den Code hinzufügst, was ich in diesem Fall richtig finde. the_tags() Sie die the_tags() Zeile nicht ein. Das ist nur zum Testen.

Eine Plugin-Datei oder eine mu-plugin-Datei würde es dem Filter ermöglichen, für jedes Thema zu arbeiten. Ich bezweifle, dass dies die Absicht ist, und es erscheint mir trotzdem irgendwie unfreundlich. the_tags() die the_tags() nicht ein.

Sie können den Code genau so einfügen, wie er an der Stelle geschrieben ist, an der Sie the_tags() verwenden the_tags() , obwohl dies eine unordentliche Methode ist.

Der Code hängt in WordPress Core-functionen ein. Es wird ausgeführt, wenn der Filter wp_get_object_terms . Sie müssen nichts Spezielles tun, außer den Filter-Callback zur Warteschlange hinzuzufügen, was Sie mit add_filter tun.

Sie können mehr Kontrolle darüber erlangen, wann der Filter ausgeführt wird, indem Sie ihn bei Bedarf hinzufügen und anschließend entfernen:

 add_filter('wp_get_object_terms','id_ordered_tags_wpse_144703',10,4); // test it the_tags(); remove_filter('wp_get_object_terms','id_ordered_tags_wpse_144703',10);