Никогда не понимал людей, усложняющих свою жизнь. Всё таки любое разумное существо стремится получить максимальный результат с минимальными затратами. Причем существа с более высоким уровнем развития ценят своё время намного выше, как мне кажется.
В век стремительного роста информационных технологий и их проникновения буквально во все сферы жизнедеятельности, всё более странно выглядят рутинные действия, выполняемые человеком. Нам на помощь пришли машины для упрощения нашей жизни. И нам остаётся лишь делегировать им максимально возможный объём работ и грамотно управлять процессами.
Одной из таких рутин является процесс наполнения сайта контентом. Не его генерация, а именно наполнение, особенно большим количеством сложно структурированного контента. О том как упростить работу контент-менеджера, сократить их штат, и пойдет сегодня речь.
Содержание
Как не надо наполнять сайт
Возьмём конкретный случай, с которым сталкиваются многие владельцы сайтов. Допустим, вы написали для сайта статьи или заказали их копирайтерам на Адвего. Их происхождение по-сути неважно. Понятно, добавить десяток статей, отформатировать, присвоить им миниатюры и рубрики не так уж и сложно. Вопросы начинают появляться когда статей не 10, а 100, допустим, или 1000, а то и более.
Или другой более сложный пример — наполнение каталога некими товарами или объектами. Что часто бывает необходимо в интернет-магазинах, на сайтах с базами недвижимости, различным медиа-контентом, радиостанциями, расписаниями и прочим. Задача может сильно усложниться, если объекты содержат метаданные с описаниями, характеристиками, координатами, ценами, фотографиями и прочим. Не стоит забывать и про таксономии, без которых сложно представить любой каталог. Чтобы внимательно заполнить и проверить один сложный объект каталога или карточку товара, я думаю, потребуется не менее 15 минут. Хорошо, если объектов не много. За восьмичасовой рабочий день вполне можно добавить около 30 единиц, а за рабочую неделю аж 150. А если элементов несколько тысяч — уже могут уйти годы. И это без учёта времени на внесение текущих изменений.
К сожалению, мне в моей практике много раз приходилось видеть, как владельцы сайтов тратили огромные средства на зарплаты контент-менеджерам, каким-то мнимым программистам, которые изо дня в день вручную, пребывая в абсолютном трансе, забивали, перебивали огромные массивы данных.
Это не правильно, необходима оптимизация труда, оптимизация трудовых процессов.
Как нужно наполнять сайт
Как уже говорилось выше, все рутинные действия должны выполняться компьютером, а контент-менеджер, оператор должны заниматься подготовкой контента, его проверкой, управлением.
Технически это выглядит следующим образом: есть некая таблица, где каждая строка соответствует записи, а в колонках хранятся её параметры и метаданные.
Согласитесь, ведь куда проще внести 100 правок в 100 ячейках таблицы, например, чем 100 раз открыть редактор страниц вашей CMS, внести изменения, сохранить и т.д. А если задействовать всю мощь Excel с его умными фильтрами, поиском, заменами и прочим, решение может быть вообще в паре-тройке кликов.
Наполнение WordPress
WordPress мало чем отличается от большинства других CMS в своём классе, его штатные средства импорта/экспорта данных так же очень примитивны.
Но как часто бывает, для WordPress существует целый класс плагинов импорта табличных данных популярных форматов, таких как: CSV, XLS, XML и т.д. Есть даже такие монстры, которые могут с какой-то периодичностью осуществлять их синхронизацию.
Из бесплатных плагинов импортирования я бы выделил следующие:
- CSV Importer — Простой, но вполне рабочий инструмент, название которого говорит само за себя. CSV Importer поддерживает импорт заголовка, тела записи, анонса, меток, даты, рубрик, имеется поддержка кастомных таксономий и комментариев.
- CSV Import for WordPress — Более продвинутый плагин с поддержкой популярных е-коммерс плагинов и функцией экспорта записей.
- WP All Import — Простой интуитивно понятный интерфейс плагина позволяет в четыре шага осуществить импорт любых табличных данных. У плагина имеется расширенная коммерческая версия, а также плагин-дополнение WP All Export, с помощью которого осуществляется экспорт данных в таблицу.
- Really Simple CSV Importer — Мощный бесплатный плагин с полным набором всех необходимых функций, поддерживает импорт рубрик, меток, произвольных типов записей, произвольных полей, кастомных таксономий и многое другое.
- WP CSV Exporter — Плагин не умеет ничего импортировать, зато прекрасно экспортирует данные в CSV, которые можно быстро отредактировать и вновь импортировать на сайт с помощью любого другого плагина импорта.
Выбор коммерческих плагинов гораздо шире, как обычно. Равно как и их функционал.
- WP Bulker — Новый плагин, поддерживающий пакетный импорт и экспорт данных WordPress в CSV. Заявлена поддержка записей, страниц, кастомных типов записей, пользователей, кастомных таксономий и медиа.
- WordPress Awesome Import & Export Plugin — Аналогичный плагин практически с тем же функционалом: импорт, экспорт, поддержка всех типов данных.
- CSV and XML Import — CSV/XML-импортер с поддержкой записей, страниц, кастомных типов записей, произвольных полей, комментариев, рубрик, меток, таксономий, пользователей, медиа и настроек. Поддерживает мультиязычность. Разработчиками плагина заявлена поддержка больших файлов, без внесения изменений в php.ini.
- CSV 2 POST — Отличительной особенностью данного плагина является возможность планирования публикаций, когда импортированные записи появляются не сразу, а по заданному расписанию. Что создаст иллюзию естественного наполнения сайта.
- Woo Import Export — Расширение для WooCommerce, которое позволяет в один клик импортировать или экспортировать структурированную базу товаров, покупателей и заказов. Имеется планировщик, поддерживаются фильтры.
Все выше представленные плагины проверены и заслуживают внимания. Но я, пожалуй, остановлюсь подробнее на WP All Import, а точнее на его коммерческой версии WP All Import Pro. С помощью него мы сегодня и попробуем импортировать небольшую таблицу.
Мощный плагин WordPress импортирования контента из CSV/XML и других популярных форматов. Умеет загружать метаданные, изображения, поддерживает синхронизацию, работу по расписанию и многое другое.
На данный момент стоимость плагина составляет 99 USD, c поддержкой WooCommerce — 139 USD, т.н. элитный бандл со всеми аддонами обойдётся в 199 USD. Да, цена заметно выше конкурентов, но всё равно несравнимо ниже зарплаты контент-менеджера или стоимости услуг фрилансеров.
Рассмотрим рабочий пример
Имеется некий информационный ресурс с каталогом музыкальных дисков.
Все диски вынесены в произвольный тип записей (CPT) «Релизы» (releases), где каждый из релизов имеет в качестве заголовка записи название и 4 произвольных поля:
- Артист (artist);
- Дата релиза (release_date);
- Обложка диска (cover_front);
- Обратная сторона обложки диска (cover_back).
Открываем Excel, создаём таблицу с 5-ю соответствующими колонками: 1 — заголовок и 4 колонки с метаданными. Не забываем дать колонкам осмысленные имена, потом с ними будет проще ориентироваться.
Сохраняем таблицу в формате Книга Excel 97-2004 (.xls).
Я не очень хорошо разбираюсь в форматах Excel. Из всех имеющихся выходных форматов Microsoft Excel for Mac 15.25.1, который я использовал в примере, самым безболезненным оказался именно Excel 97-2004. Более традиционный CSV/XML почему-то некорректно работал с дефолтными кодировками. Я не разбирался в причинах — скорее всего Excel выдает не UTF-8. Менять же кодировку на данном этапе каким-то дополнительным софтом в мои планы не входило. Не исключено, что проблема решается какой-то одной галочкой в настройках Excel.
Импорт XLS в WordPress
Открываем администраторскую консоль WordPress и переходим в раздел «All Import».
Шаг 1
Загружаем ранее созданную таблицу (Upload a file), выбираем нужный тип записей, в нашем случае это «Релизы» и переходим ко второму шагу.
Шаг 2
На втором этапе редактировать ничего не будем. Если структура вашей таблицы стандартная, оставляем всё как есть — node.
На данном этапе также можно отфильтровать записи, исключив из импорта ненужные или, наоборот, включив в импорт только записи содержащие какой-то маркер.
Шаг 3
Третий шаг самый сложный и самый ответственный, именно на данном этапе задаются все правила импорта, именно сейчас мы определяем куда будет сохранена каждая колонка таблицы.
Для этого просто перетаскиваем (drag-and-drop) мышкой необходимые колонки таблицы в соответствующие поля записи. В нашем случае это заголовок и 4 произвольных поля: artist, release_date, cover_front и cover_back.
Тело записи, анонс, миниатюра, изображения при необходимости задаются аналогичным образом. На данном этапе можно сохранить шаблон распределения данных для будущих импортов.
Шаг 4
Задаем уникальный идентификатор. Постарайтесь на допускать совпадения идентификаторов, иначе импортируемые данные могут быть перезаписаны и потеряны.
Сейчас также нужно решить, будем ли перезаписывать существующие записи при их совпадении, нужно ли удалять записи, если их нет в импортируемой таблице, а также определяемся каким образом будем обновлять существующие записи: создавая новые или перезаписывая старые.
Это очень важный момент, который ведет к принципиально разным результатам импортирования. Затем кликаем на кнопку «Continue» и переходим непосредственно к импорту.
Импорт
Ещё раз все проверяем и если нет никаких ошибок и предупреждением, кликаем по кнопке «Confirm and Run Import»
Процесс импорта может занять некоторое время. Сразу хочу предупредить, не стоит скармливать плагину большие многомегабайтные таблицы. Особенно, если у вас слабый виртуальный хостинг, сложная структура данных, большое количество изображений, загружаемых с удаленных серверов. Лучше разбить большую таблицу на несколько небольших и импортировать их последовательно.
Если же у вас свой или арендованный сервер, не забудьте перед импортом увеличить максимально допустимое время выполнения скрипта, т.к. процесс может затянуться.
В случае успешного импорта, получим соответствующее уведомление: Import Complete! WP All Import successfully imported your file Releases.xls into your WordPress installation!
Чтобы удостовериться, что все прошло успешно, открываем список соответствующего типа записей, в нашем случае «Релизы». Все 15 записей импортированы.
Управление импортом
Огромным плюсом плагина WP All Import Pro является то, что все ранее произведенные импортирования сохраняются в разделе «Manage Imports». Если процедура импорта записей носит регулярный характер, вовсе необязательно каждый раз её настраивать заново. Достаточно нажать «Run Import» и загрузить новую табличку по ранее заданным правилам. Это делается буквально в один клик.
В заключение
Как видим, благодаря плагинам, в WordPress можно наладить вполне рабочий механизм импорта, экспорта и синхронизации данных. Поддерживая таким образом актуальность данных в соответствии с источником, которым могут служить любые табличные данные. Например, выгрузки из 1С, различные данные, полученные из других специализированных приложений, показания каких-то приборов, собранную вручную информацию и многое другое. Продолжать можно бесконечно.
На примере плагина WP All Import Pro мы убедились, что механизм работает, отлично справляется с поставленными задачами и существенно упрощает работу контент-менеджера. Скорее даже полностью меняет принцип, подход, концепцию.
А всё это открывает совершенно новые горизонты использования WordPress.
Делаю сайты на Вордпресс с 2008 года, в том числе уникальные инструменты для решения сложных бизнес‑задач.
Подробнее
http://www.wpallimport.com/documentation/troubleshooting/slow-imports/
Смотрите какое максимальное время на выполнение скриптов (max_execution_time) доступно на тарифе. Еще встречаются хостинги, где максимум 30 сек.
Но если нужно спарсить весь условный АлиЭкспресс, тут однозначно потребуется свой сервер.
По вариативным затрудняюсь ответить — бесплатных не встречал.
Может быть кто-то из читателей знает, напишите плиз
Такое же оформленное в тэги html описание для товаров, отлично импортируется. А вот с категориями почему-то обрезается.
Есть идеи, почем так получается и в какую сторону «копать» ?
[
{
field1:value,
field2:value,
field3:value
},
{
field1:value,
field2:value,
field3:value
},
…
…
]
На WordPress есть кастомные статьи. Эти статьи представляют из себя радиостанции, (т.е название, жанр, логотип, url-поток и т.д..) и вручную добавлять и публиковать всё, очень трудоемкий процесс. Возможно ли импортировать это всё в WordPress? (P.S: если вдруг это важно, то я также имею содержимое этого .json в .csv формате, с соблюдением всех строк, разделителей и т.д.)
JSON, XML поддерживаются, да
Спасибо тебе за труды.
Твои статьи одни из самых полезных, на которые я натыкался в интернете (в частности статья про «Мультисайт», сейчас по ней делаю сайт).
Буду тебе признателен, если подскажешь.
У меня мультисайт с региональными поддоменами, и есть XML-база товаров по каждому региону (в отдельном столбце прописано название региона).
Возможно ли как-то разово импортировать базу (через тот же All Import Pro), сразу во все поддомены?
Разбивать базу под каждый регион и отдельно импортировать — невероятно трудозатратно (регионов больше 100).
Спасибо тебе!
Благодарю за добрые слова.
Насколько я помню, WP All Import не умеет работать с мультисайтом.
Можно импортировать их все на один из сайтов сети, присвоить метку/категорию региона, а потом с помощью какого-нибудь Multisite Post Duplicator по этим меткам их пачками раскидать по своим сайтам. Или через нативный экспорт/импорт.
А на полном автомате даже не знаю.
Наверное, только писать свой скрипт прямого импорта в БД, идентифицировать у каждого товара регион и раскидывать по заранее определенным таблицам.
Или нужно обратиться к программистам по Вордпрессу? Как к Вам, например…
Если проблема с экранированием, попробуйте поэскпериментировать с экспортом, разделителями.
В крайнем случае можно ведь поиском с заменой по всему файлу перед каждым тегом поставить этот слеш.
Поддерживать актуальность в таком виде будет сложно, для синхронизации лучше найти источник с json, xml
Если хотите, могу вам для экспериментов выслать PRO версию.
Подскажите могу ли я у Вас приобрести копию плагина WP All Import Pro — мне необходимо импортировать вариативные товары. К сожалению у официального продавца купить не могу — вот что они мне пишут: «Мы сожалеем, но американские правила в настоящее время мешают нам обслуживать пользователей в Крыму. Пожалуйста, свяжитесь support@stripe.com если вам нужна помощь.»
Помогите пожалуйста.
Или в нем есть возможность бесплатно импортировать товары в WP?
В моем случае , не принимал импорт с файла (хотя использовал его же шаблоны) — «File upload rejected by server»
http://www.wpallimport.com/woocommerce-product-import/