web-dev-qa-db-ja.com

WP REST API:メタ値(acf)で投稿を注文しますか?

WP REST AP​​Iを使用して投稿をリクエストしていますが、ACFフィールドに従ってそれらを並べ替える必要があります。その値は日付を表します(数値、jQueryの日付形式yymmdd)。私は通常のWP_Queryでそれをする方法を知っていて、残りのapiを使って同じことをやろうとしました:

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

実際、私は残りのapiに登録されたカスタム投稿タイプを使用していますが、それ以外はすべて完璧に機能しているので、cpt特有の問題ではないと思いますか?

しかし、投稿はデフォルトの順序(作成日、最新から最古)で表示されます。何が足りないの?このorderbyパラメータは残りのapiではサポートされていませんか?もしそうなら、どうやって自分で実装できますか?

他の回避策、提案はありますか?本当に解決策を探しています!ヒントをありがとう!

1
Mauro Bringolf

Rest_query_varsフィルタを使用して、meta_keyとmeta_valueをREST AP​​Iに公開していないと思います。

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');

そうすれば、クエリでmeta_keyとmeta_valueを参照できます。

これは明らかにあなたの投稿メタデータすべてをAPIに公開することに注意してください。これは潜在的なセキュリティ上の影響を持ちます。それがデフォルトで有効になっていない理由です。

1
iguanarama