web-dev-qa-db-de.com

WP REST API: Beiträge nach Meta-Wert ordnen (acf)?

Ich fordere Posts mit der WP REST-API an und muss sie nach einem ACF-Feld sortieren. Der Wert repräsentiert ein Datum (numerisch, jQuery-Datumsformat yymmdd). Ich weiß, wie man es mit einer normalen WP_Query macht und habe versucht, dasselbe mit der Rest-API zu machen:

mydomain.com/wp-json/wp/v2/posts?filter[orderby]=meta_value_num&filter[meta_key]=my_field_name&filter[order]=DESC

Tatsächlich verwende ich einen benutzerdefinierten Beitragstyp, der für die restliche API registriert ist, und alles andere funktioniert einwandfrei. Ich denke also, es ist kein Cpt-spezifisches Problem.

Die Beiträge werden jedoch in der Standardreihenfolge (Erstellungsdatum, spätestens bis zum ältesten) angezeigt. Was vermisse ich? Wird dieser orderby-Parameter von der Rest-API nicht unterstützt? Wenn ja, wie kann ich es selbst implementieren?

Irgendwelche anderen Problemumgehungen, Vorschläge? Wirklich auf der Suche nach einer Lösung! Für Hinweise dankbar!

1
Mauro Bringolf

Ich vermute, Sie haben meta_key und meta_value nicht der REST -API mit dem rest_query_vars-Filter ausgesetzt.

function my_add_meta_vars ($current_vars) {
    $current_vars = array_merge ($current_vars, array ('meta_key', 'meta_value'));
    return $current_vars;
}
add_filter ('rest_query_vars', 'my_add_meta_vars');

Dann können Sie in Ihrer Abfrage auf meta_key und meta_value verweisen.

Beachten Sie, dass hierdurch offensichtlich alle Ihre Post-Metadaten für die API verfügbar gemacht werden, was potenzielle Auswirkungen auf die Sicherheit hat. Ich glaube deshalb ist es nicht standardmäßig aktiviert.

1
iguanarama