WP_Query Meta_key ist ein Textwert und muss so sortiert werden, dass er nicht funktioniert

Ich habe den folgenden Code unten in meinem ~ WP_Query.

$args[ 'meta_key'] = 'price'; $args['orderby'] = 'meta_value meta_value_num'; $args['order'] = 'ASC'; 

Das betreffende benutzerdefinierte Feld enthält historische Daten, die in einem benutzerdefinierten Feld erstellt und als Text festgelegt wurden. Wenn ich meine Abfrage ausführe, erhalte ich folgende Ergebnisse:

1.199,00, 1.299,99 169,99, 379,95.

das sieht wie eine korrekte Alphasorte aus. Die höheren Zahlen sollten jedoch zuletzt und die niedrigeren Werte zuerst erscheinen. Ich habe versucht, das benutzerdefinierte Feld zu numerisch anzupassen, jedoch verliere ich die benutzerdefinierten Felddaten.

Hat jemand einen Vorschlag, wie ich meine Abfrage entweder neu schreiben oder meine Text-Felddaten in numerische Daten übertragen soll?

Solutions Collecting From Web of "WP_Query Meta_key ist ein Textwert und muss so sortiert werden, dass er nicht funktioniert"

Ein meta_value Feld ist immer Text; der Feldtyp in der databasestruktur ist longtext , wenn Sie beim Abrufen nicht explizit longtext ( longtext $price = (float)$custom['price'][0]; – was bei der ersten Bestellung nicht hilft) ), können Sie die benutzerdefinierten Felddaten nicht ‘anpassen’ – sie werden immer als Text gespeichert.

Nachdem Sie das gesagt haben, sollten Sie einfach den ursprünglichen meta_value in Ihrer orderby Argument entfernen:

 $args['meta_key'] = 'price'; $args['orderby'] = 'meta_value_num'; $args['order'] = 'ASC'; 

Nachdem ich genau dieses Argument verwendet habe, habe ich mich erst gestern festgelegt, es funktioniert perfekt.