Загрузка пользовательского типа контента из результатов ajax?


Используем WordPress 4.3, и у нас есть пользовательский тип записи с пользовательскими полями. Легко просто импортировать весь этот контент из базы данных в базу данных WP, и все будет там. Проблема в том, что вся внутренняя работа выполняется на внешнем ERP-сервере. С точки зрения администратора никаких фактических изменений на сайте WP внесено не будет, но

Прямо сейчас мы используем ajax api для подключения к нашему старому веб-сайту и получения всех данных. Что я хотел бы сделать, так это использовать этот api ajax для извлечения введите данные в качестве пользовательского типа контента и сохраните их в базе данных WP. Затем, возможно, есть cron или что-то, что будет проверять изменения между тем, что находится на сайте, и тем, что поступает с сервера.

Причина этого в том, что подумайте об этом пользовательском типе контента как о продукте. Существует 70 тысяч товаров, но они никогда не продаются с веб-сайта. Веб-сайт просто отображает то, что там есть. Все продажи, изменения цен и т.д. обрабатываются с сервера ERP, а затем ему необходимо обновить сайт WP.

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

1) На старом сайте у нас есть следующее:

Method: POST
URL: "http://api.example.com/api/product/search"
Headers: Content-Type = application/json
Body: {
  "categories": [],
  "brand": [],
  "sizes": [],
  "base": [],
  "location": [],
  "searchTerms": [""]
}

2) Как бы я использовал это для создания заполнения пользовательских страниц типа сообщений?

3) Как бы я использовал это для сортировки результатов по категориям?

4) Я предполагаю, что буду использовать пользовательскую таксономию для таких вещей, как категория, бренд, размер и т. Д. Так как мне сопоставьте их, а также заполните поля, полученные в результате? Это такие вещи, как цена, описание и т.д.

5) Есть ли способ, который я могу использовать, чтобы настроить эту синхронизацию в качестве хрона, чтобы это происходило каждую ночь или что-то в этом роде?

Author: o_O, 2015-09-09

1 answers

Нет необходимости делать это через Ajax, вы можете использовать библиотеки curl в WordPress для доступа к данным с удаленных сайтов. WordPress имеет приятный небольшой интерфейс через WP_HTTP_Curl за то, что сделал именно это.

Создание записей на основе полученных вами данных может быть выполнено с помощью wp_insert_post() и изменения в сообщениях, скорее всего, будут сделаны с помощью wp_update_post()

Ваше желание сортировать по категориям должно быть немного более конкретным, WP автоматически создает URL-адреса для категорий по адресу /category/<cat-slug> когда включены красивые URL-адреса, также существуют механизмы для простого создания меню с использованием тех же элементов категории.

WordPress также имеет Cron- например, возможности, которые могут быть дополнены реальным заданием cron для обеспечения выполнения задач.

 1
Author: totels, 2015-09-09 18:53:07