WordPress REST API Получать данные для одного поста Slug? - PullRequest
0 голосов
/ 09 июля 2019

Я работаю над написанием своей собственной конечной точки с помощью WordPress REST API.В настоящее время у меня есть зарегистрированная конечная точка для одного сообщения с использованием идентификатора сообщения.

$version = '1';
$namespace = 'vendor/v' . $version;
$base = 'route';
register_rest_route( $namespace, '/' . $base . /(?P<id>[\d]+)', array(
  array(
  'methods'  => WP_REST_Server::READABLE,
  'callback' => 'get_data_function',
  ),

Поэтому, когда я добавляю (?P<id>[\d]+) в конец зарегистрированного маршрута отдыха, который будет получать только данные для сообщения с определеннымЯ БЫ.Возможно ли это сделать вместо слизня?Таким образом, маршрут был бы зарегистрирован таким же, но вместо добавления (?P<id>[\d]+) я бы добавил что-то похожее, чтобы зарегистрировать его для слаг-поста

Я занимался некоторыми исследованиями, но не смог найти никакой информациина нем

1 Ответ

0 голосов
/ 10 июля 2019

Я нашел ответ на свой вопрос. Если кто-то наткнулся на это и ищет ответ, я использовал (?P<slug>[a-zA-Z0-9-]+), который проверяет слаг в конечной точке REST. Так в качестве примера:

register_rest_route('test/v1', 'posts/(?P<slug>[a-zA-Z0-9-]+)', [
    'methods' => 'GET',
    'callback' => 'post_single',
]);


function post_single($slug) {

    $args = [
        'name' => $slug['slug'],
        'post_type' => 'post'
    ];

    $post = get_posts($args);

        $data['id'] = $post[0]->ID;
        $data['title'] = $post[0]->post_title;
        $data['slug'] = $post[0]->post_name;
        $i++;

    return $data;

}

Если бы вы были тогда, чтобы перейти к https://your-website.com/wp-json/test/v1/posts/hello-world

будет получать данные для поста с фрагментом hello-world

...