Как вы получаете сообщения по нескольким meta_keys и meta_values ​​с Rest API V2? - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь получить свои сообщения несколькими meta_key с и meta_value с. Как мне это сделать? URL-адрес должен выглядеть следующим образом:

"/posts?meta_key=Example&meta_value=Example2&meta_key=Example3&meta_value=Example4"

Я довольно долго пытался найти решение для этого, но ничего не смог найти, так как большинство вещей устарели.

1 Ответ

0 голосов
/ 02 апреля 2020

Я нашел решение для моей проблемы. То, что я сделал, довольно просто. Я только что установил новый параметр запроса.

if (!function_exists('post_meta_rest_api_request')) :
function post_meta_rest_api_request($argu, $request)
{

    $argu += array(
        'meta_key' => $request['meta_key'],
        'meta_value' => $request['meta_value'],
        'meta_query' => $request['meta_query'] == 1 ? array(
        array(
            "key" => "key1",
            "value" => "value1"
        ),
        array(
            "key" => "key2",
            "value" => "value2"
        )
    ) : $request['meta_query']
    );

    return $argu;
}
add_filter('rest_custom_query', 'post_meta_rest_api_request', 99, 2); 
endif;

Так что, если вы сейчас сделаете вызов API, например: wordpress/wp-json/wp/v2/customType?meta_query=1, запрос API примет ваши пользовательские параметры запроса. В противном случае он просто примет обычный запрос Meta Query. Для ссылок смотрите здесь: Запросы WordPress Rest-API

...