Sortiere wp Post Titel mit alphabetisch und numerisch?

Gibt es eine Möglichkeit, eine neue WordPress Post-Abfrage nach dem Titel, aber numerisch statt alphabetisch zu sortieren?

Ich habe einige Titel, die alphabetisch den gleichen Namen haben, und hinterher eine Nummer haben, also title12 WordPress zum Beispiel title12 vor title1 .

 $args = array( 'orderby'=> 'title', 'order' => 'ASC', ); $loop = new WP_Query( $args ); 

Ich weiß, dass wir diese functionalität haben, um Titel in aufsteigender Reihenfolge zu sortieren, aber Titel wie diesen werden nicht sortiert: – Titel 1 Titel 2

Bitte lassen Sie mich wissen, wenn wir mit WP-Abfrage umgehen? Danke im Vorraus für deine Hilfe 🙂

Solutions Collecting From Web of "Sortiere wp Post Titel mit alphabetisch und numerisch?"

Nun, was WP tut, ist technisch korrekt. Sie können Ihre Titel entweder mit vorangestellten Nullen umbenennen.

 Title 001 Title 012 

Andernfalls

Sie können die Sortierung mit dem Veröffentlichungsdatum verwenden

Oder Sie können ein Order-Meta-Feld verwenden und nach diesem mit wp_query

Deine Titel sind keine Nummern. Sie können nicht numerisch sortieren, wenn Sie keine Zahlen haben. Wohin geht “T” in einer numerischen Reihenfolge?

Wenn Sie jedoch ein konsistentes Muster haben, mit dem Sie den Titel auseinander brechen können – ich habe ein Leerzeichen verwendet und ein Muster wie “Titel” + Leerzeichen + “Zahl” angenommen – können Sie Folgendes tun:

 function numeric_sort_title_field($fields) { remove_filter('posts_fields','numeric_sort_title_field'); global $wpdb; $fields .= ', '; $fields .= 'REVERSE('; $fields .= 'LEFT('; $fields .= "REVERSE({$wpdb->posts}.post_title),"; $fields .= "LOCATE(' ',REVERSE({$wpdb->posts}.post_title))"; $fields .= ')'; $fields .= ') + 0'; $fields .= ' AS number'; $fields .= ', '; $fields .= 'REVERSE('; $fields .= 'LEFT('; $fields .= "REVERSE({$wpdb->posts}.post_title),"; $fields .= "LENGTH({$wpdb->posts}.post_title) - LOCATE(' ',REVERSE({$wpdb->posts}.post_title))"; $fields .= ')'; $fields .= ') + 0'; $fields .= ' AS title_text'; return $fields; } add_filter('posts_fields','numeric_sort_title_field'); function numeric_sort_title($orderby) { remove_filter('posts_orderby','numeric_sort_title'); $orderby = ' title_text, number'; return $orderby; } add_filter('posts_orderby','numeric_sort_title'); $q = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => -1 ) ); var_dump($q->request); if ($q->have_posts()) { while ($q->have_posts()) { $q->the_post(); the_title(); echo '
'; } }

Sie sollten Beiträge erhalten, die nach dem Textteil des Titels und dann nach dem numerischen Teil sortiert sind.