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

Как импортировать данные на сайт при помощи плагина 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, и он постарается вам помочь.