Блог партнёрской сети Travelpayouts

Как импортировать данные на сайт при помощи плагина WordPress All Import

Время прочтения:  8  мин.
819
22
Как импортировать данные на сайт при помощи плагина WordPress All Import

Используя плагин WP All Import, вы сможете очень быстро загрузить в блог большой объём данных из файлов XML и CSV. Наш аффилиат Илья Пономаренко подготовил пошаговую инструкцию по размещению в блоге страниц с поисками авиабилетов и картами отелей в разных городах.

Установка и настройка плагинов

Вам потребуется два плагина: Travelpayouts и WP All Import.

Плагин Travelpayouts

С его помощью вы сможете через интерфейс редактирования WordPress вставлять следующие инструменты:

  • формы поиска авиабилетов и отелей;
  • виджеты отелей;
  • настраиваемые таблицы с полезной информацией об отелях и перелетах: календарь низких цен, выгодные направления из конкретного города, популярные направления авиакомпаний и многое другое;
  • карту авиаперелётов;

Также с помощью плагина вы сможете отправлять пользователей из блога на ваш White Label или другие поддомены на 45 разных языках. Установив плагин Travelpayouts, настройте форму поиска авиабилетов и отелей.

Скачать плагин Travelpayouts →

Плагин WP All Import

Плагин помогает парой кликов загрузить большой объём данных из файла формата XLS или CSV в соответствующие поля в блоге на WordPress.

Плагин работает с любой темой WP и взаимодействует с другими плагинами. WP All Import распознаёт поля, которые вы создали в WordPress или плагинах для WP, поэтому можно заливать любые данные, в том числе ключевые слова, title, description, фотографии и к ним заголовки, подписи, описания и так далее.

С помощью WP All Import можно создавать новые страницы, добавлять информацию на старые и автоматически обновлять страницы с заданной частотой. После установки плагина WP All Import настраивать ничего не нужно.

Самая недорогая версия плагина WP All Import стоит $99. Вы можете попробовать поработать с WP All Import неделю бесплатно, создав демо-сайт.

Скачать плагин WP All Import →

Подготовка файла для импорта

В примере мы покажем как подготовить к импорту файл с IATA-кодами городов (со склонениями по падежам).

  • Скачайте базу с IATA-кодами городов (со склонениями по падежам).
  • Конвертируйте файл в формат xls, xlsx или csv. Можно сделать это при помощи онлайн-конвертора.
  • После конвертации файл можно отредактировать.
  • Переименуйте первый столбец в iata.
  • Уберите вертикальный слеш и лишние подчеркивания в названиях столбцов с падежами.
  • Уберите пустые строки из файла.
  • Заполните те строчки, где iata есть, а названия города на русском в падежах нет, в файле их не много.

В итоге получится файл такого вида:

В этом файле вы можете добавить для городов title, description, ключевые слова и вставить их потом в поля в WordPress при помощи аддона All-in-One SEO Add-On. Подобные SEO-аддоны есть и для других популярных SEO-плагинов.

Файл готов к импорту. Для примера создадим страницы с поисками авиабилетов в разные города.

Как создать страницы с поисками авиабилетов в разные города

В примере мы создадим множество страниц с заголовками вида «Дешёвые билеты в N». Посмотрите видео, где подробно показан процесс импорта данных при помощи плагина All Import, а далее мы расскажем подробнее о каждом шаге и настройках.

Шаг 1: загрузить файл для импорта

В левом сайдбаре в меню плагина All Import выбрать New import. В открывшемся окне нажать Upload a file и загрузить подготовленный файл. Когда файл загрузится, выберите пункт «Страницы».

Шаг 2: выбрать элемент для импорта

Выберите строчку <node> в левом сайдбаре. Появится надпись «Each <node> element will be imported into a New Страница», что переводится как «Каждый элемент <node> будет импортирован на новую страницу». В элементах <node> содержатся все данные по каждому городу.

Шаг 3: сделать шаблон страниц

На третьем шаге появятся два поля: основное поле — страница, которая будет сделана на основе данных из файла, в правом сайдбаре — данные из файла, . Элементы вида <iata>, <name> и так далее — это названия столбцов. Между тегами — содержание строк в импортируемом файле.

Впишите начало заголовка страницы, например: «Дешёвые авиабилеты». В правом сайдбаре найдите элемент в нужном падеже — это <cases__vi>. Нажмите на него и удерживая перетащите в заголовок. Получится заголовок вида: «Дешёвые авиабилеты {cases__vi[1]}».

Создайте форму поиска

Для этого вставьте его в зону контента будущей страницы шорткод пустой формы поиска.

[tp_search_shortcodes slug="1crt2j0f" origin="" destination="" type="avia" subid=""]

В поле destination перетащите из правого сайдбара элемент <iata>, вставьте его между кавычек. Получится форма вида:

[tp_search_shortcodes slug="1crt2j0f" origin="" destination="{iata[1]}" type="avia" subid=""]

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

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

Добавьте карту отелей

  • Создайте frame отельной карты во вкладке «Инструменты» в аккаунте Travelpayouts.
  • Скопируйте код в поле контента.
  • Найдите в коде карты строку с параметрами широты и долготы, которая выглядит так lat=55.7558&lng=37.61760000000004. Замените на city_iata=.
  • Перетащите из правой колонки элемент <iata> и расположите после знака «=» . Получаем city_iata={iata[1]}.

Код получится такой:

Как создать шаблон страниц, используя плагин Visual Composer

  • Сделайте макет страницы в плагине Visual Composer.
  • Скопируйте получившийся код и вставьте его в поле контента в плагине WP All Import.
  • Поставьте обратный слеш перед каждым шорткодом, который используется в Visual Composer.
  • Если настраивали стили для ряда или колонок, то обратный слеш надо поставить и перед фигурными скобками, в которые заключен стиль css для этого ряда или колонок, иначе стиль не применится.

Дополнительные настройки страницы в плагине WP All Import

  • Images — импорт картинок. В нашем примере картинок нет, вы можете почитать подробнее об импорте в справке плагина.
  • Custom Fields — произвольные поля. Могут пригодиться для последующей настройки фильтра или поиска по городам. В первом поле Name напишите название: «city». В поле Value укажите значение: для этого перетащите в него элемент из правого сайдбара.
  • Other Страница Options. Выберите в меню Post Status пункт Published (страница будет опубликована) или Draft (черновик).
  • Post Dates. Оставьте Now, чтобы опубликовать страницу сразу или выберите любую дату.
  • Comments. Выберите Closed, чтобы закрыть комментарии, или Open, чтобы открыть.
  • Trackbacks and Pingbacks — оповещения для блогов, что вы упомянули их на странице. Если упоминаний нет или вы не хотите оповещать, выберите Closed.
  • Post Slug. Перетащите сюда из правого сайдбара элементы <iata> и <name>. Элемент <name> можно не перетаскивать, тогда ссылка на страницу будет такой же как заголовок в title. Чтобы ссылка автоматически транслитерировалась в латиницу, установите плагин SP RTL (RusToLat) или подобный.
  • Post Author. Укажите автора или оставьте поле незаполненным, тогда автором будет назначен админ сайта.
  • Download&Import Attachments. Если не будете прикреплять файлы, оставьте поле пустым.
  • Page Template. Если у вашей темы несколько шаблонов для страниц выберите нужный или оставьте шаблон страницы по умолчанию.
  • Select page parent — выбор родительской страницы. В этом примере заранее создана страница «Города» и выбрана как родительская. Все созданные страницы городов будут под ней. Можно не делать родительскую страницу.
  • Menu Order — порядок расположения страниц. В примере оставили его без изменений.
  • Function Editor — тут можно встраивать php-код и дополнительные хуки. Функция для продвинутых. Подробнее почитать о ней можно в документации на сайте плагина.

В самом низу отметьте галочкой пункт Save settings as a template. В поле Template name задайте название шаблона. Теперь его можно использовать как макет для других страниц.

Шаг 4: создать уникальный ID

На этой странице надо заполнить поле Unique Identifier уникальный идентификатор для страниц, чтобы исключить дубликаты. Перетащите сюда элементы <iata> и <name>, получится строка вида {iata[1]}-{name[1]}.

Другие настройки на этой странице можно оставить без изменений. Узнайте подробнее обо всех настройках на официальном сайте разработчика и видеосправках.

Всё готово для импорта. Нажмите кнопку «Continue». На странице резюме импорта ещё раз посмотрите, что и откуда импортируется. Вы всегда можете вернуться на несколько шагов назад, чтобы внести изменения.

Если всё верно, нажмите кнопку Confirm&Run Import, чтобы запустить процесс импорта. Дождитесь окончания импорта, перейдите на страницы и проверьте результат. Результат: создано 2725 страниц.

Импорт спецпредложений из файла xml с сайта Aviasales.ru

Импортировать файл xml можно прямо с сайта Aviasales.ru по ссылке http://www.aviasales.ru/latest-offers.xml. Перед импортом нужно включить в настройках плагина опцию Enable Stream Reader, чтобы русские символы нормально импортировались.

Как импортировать маршруты и спецпредложения для конкретной авиакомпании

Одна авиакомпания может опубликовать несколько спецпредложений по разным маршрутам, в XML-файле они отображаются  {route[1]},  {route[2]},  {route[3]}. Чтобы все их вытащить, вставьте в поле контента конструкцию [FOREACH()] для циклического прохождения по каждому элементу <route>.

Перетащите элемент <route> из дерева XML справа в запись. Получится {route[1]}, удалите [1]. Должен получиться код вида: [FOREACH({route})] и закрывающий шорткод [ENDFOREACH]. При размещении такой конструкции все три направления  {route[1]},  {route[2]},  {route[3]} отобразятся по порядку.

Между шорткодами FOREACH перетащите и вставьте from_name (откуда), получится {route[1]/@from_name}. Удалите из него route[1]/, останется {@from_name}. То же самое нужно сделать с элементом to_name (куда) и другими элементами, которые будем использовать, в итоге должно получиться так:

[FOREACH({route})]
{@from_name} - {@to_name} {@class} {@roundtrip_price}{@oneway_price}
[ENDFOREACH]

Как вставить ссылку на White Label

Вы можете вставить ссылку на поиск на White Label. Используйте элементы {route[1]/@from_iata} и {route[1]/@to_iata}, удалите route[1]/. Получатся элементы {@from_iata} и {@to_iata} и ссылка такого вида:

Адрес_White_Label/flights/?origin_iata={@from_iata}&destination_iata={@to_iata}.

Можно вставить ссылку, перетащив её из xml файла, «href=» это ссылка на Aviasales.ru, «link=» это сайт авиакомпании. Только не забудьте добавить маркер, его надо заранее внести в файл для импорта, только вставлять надо не в [FOREACH({route})], а выше или ниже.

Как импортировать даты поездки

В xml файле есть временные точки такого вида:

  • sale_date_begin — начало периода продаж билетов.
  • sale_date_end — окончание периода продаж билетов.
  • flight_date_begin — начало периода полетов.
  • flight_date_end — окончание периода перелетов.

Вставляем их методом перетаскивания в такие шорткоды:

  • [date(«d.m.y»,strftime({./@flight_date_begin}))]
  • [date(«d.m.y»,strftime({./@flight_date_end}))]
  • [date(«d.m.y»,strftime({./@sale_date_begin}))]
  • [date(«d.m.y»,strftime({./@sale_date_end}))]

В итоге получаем нечто похожее на это:

Импорт логотипов авиакомпаний

Логотипы авиакомпании доступны по адресу http://pics.avs.io/width/height/iata.png, где width — ширина логотипа, height — высота логотипа, iata — иата код авиакомпании. Размер может быть любым.

  • Вставьте в поле загрузки ссылку: http://pics.avs.io/width/height/iata.png.
  • Замените iata на элемент {./@airline_code} из правого сайдбара.
  • Получится ссылка вида: http://pics.avs.io/width/height/{./@airline_code}.png.
  • Размер логотипа задайте, заменив длину и ширину на нужные значения.


Нажмите кнопку Preview&Test и проверьте, что логотип появляется внизу всплывающего окна.

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

В плагине есть функция запуска заданий с помощью планировщика cron.

  • На странице Manage Imports найдите нужный файл.
  • Кликните на Scheduling Options.
  • Выберите вариант Manual Scheduling.
  • Вам нужно задать trigger URL и processing URL
    Trigger URL для запуска раз в сутки или другой промежуток времени:

    http://ваш-сайт.com/wp-cron.php?import_key=[YOUR_SECRET_KEY]&import_id=[YOUR_IMPORT_ID]&action=trigger
    

    Для запуска импорта каждые 24 часа, нужно запускать URL-адрес триггера каждые 24 часа.

    Processing URL для запуска каждые 2 минуты:

    http://ваш-сайт.com/wp-cron.php?import_key=[YOUR_SECRET_KEY]&import_id=[YOUR_IMPORT_ID]&action=processing
    

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

Параметр «secret key» вы найдёте на странице WP All Import → Settings screen. Параметр «import ID» — на странице Manage Imports.

Если вы не сможете настроить задания в cron самостоятельно, попросить хостинг-провайдера вам помочь. В справке к плагину WP All Import есть подробная инструкция по настройке и шаблон письма провайдеру.

Может показаться, что работать с плагином All Import — непросто и с этим может справиться только профессиональный разработчик. На самом деле, достаточно следовать инструкциям. Создав несколько страниц, вы научитесь быстро их настраивать, и в дальнейшем это сэкономить очень много вашего времени. Если у вас возникнут вопросы или проблемы, вы можете написать Илье на адрес homepcx@yandex.ru, и он постарается вам помочь.