Wordpress API поиск пост более чем одно слово - PullRequest
0 голосов
/ 17 февраля 2019

Ну, я получил это

getSearch(idQuery:string){

return this._http.get(`${this.url}posts?search=erik`).pipe(map(
  posts=>{

  return posts['posts']

  }
));

Я использую Wordpress API REST, но я не понимаю, как я могу найти более одного слова в строке, потому что, если я использую одно, оно действительно работает,но если добавить более одной работы, это не произойдет, несмотря на то, что я пытаюсь использовать

post? search = erik + alan

или post? search = erik% 20alan

Можете ли вы помочь мне с этим?

ПРИМЕЧАНИЕ: idQuery: Строка для замены, когда она работает.

я будунайти решение, не самое лучшее, я думаю

Search(termino:string){

let searchArray: string[] = termino.split(" ");

let forPush = [];

if (termino.length == 0)  {
  this.jobs = [];
  this.getPosts(this.jobs)  
  return
}


for (const i in searchArray) {
  const el =  searchArray[i];

  this._searchService.getSearch(el).subscribe( search => {

    if(search['found'] > 0){

      let posts = search['posts']

      for (const i in posts) {
        let post = posts[i];
        forPush.push(post)
      }


    } else {
      console.log('Sin resultado');

    }

  })

}

Я использую службу в angular для получения HTTP-запроса, затем я делаю подписку на наблюдаемую и для каждого слова, которое она отправляет, получает запрос..

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

1 Ответ

0 голосов
/ 04 марта 2019

В качестве замены или в дополнение к WP Rest API рассмотрите возможность использования API Xo, предоставляемого с плагином Xo for Angular для WordPress.

https://wordpress.org/plugins/xo-for-angular/

Полное раскрытие, яавтор плагина.

API Xo предоставляет конечную точку фильтрации для сообщений, которая поддерживает несколько условий поиска.Внутренне этот запрос разбивает строку поиска на пробелы и выполняет несколько вызовов get_posts (), объединяя полученные идентификаторы.

Например, на сайте https://angularxo.io есть две страницы с названиями "API" и "Руководства".».Их можно искать, используя один вызов:

https://angularxo.io/xo-api/posts/filter?postType=page&search=api+guides

Обратите внимание, что тип сообщения указан, но не обязателен, что помогает ограничить результаты определенным типом сообщения.В данном случае страницы.В целях безопасности только типы сообщений, помеченные как открытые, могут быть найдены и извлечены таким образом.

Кроме того, эта конечная точка поддерживает разбиение на страницы и другие параметры, аналогичные get_posts ().

Документация (работа в процессе) можно найти по адресу: https://angularxo.io

В противном случае источник для этого метода может помочь вам указать правильное направление: https://github.com/WarriorRocker/angular-xo-core/blob/master/Includes/Api/Controllers/PostsController.class.php

Xo для Angular обеспечивает полное решение для загрузки Angular кактема в WordPress, хотя вы можете легко оставить эту функцию отключенной и использовать только расширенные функции API.

Дополнительные документы API: https://angularxo.io/api/controllers

Дайте мне знать, если вы считаете, что это может работатьза тебя спасибо!

...