Генерация XML для импорта в wordpress – создаем сателлит

Схема XMLВ своей записи о размножении контента для создания сателлитов или продвижения сайта с использованием бесплатной программы для клонирования статейArticle Clone Easy” я отмечал теги, которыми размечаю размноженные статьи и обещал рассказать, для чего мне это нужно, а также выложить скрипт, которым в дальнейшем обрабатываю результаты клонирования:

“Вы наверняка обратили внимание на теги, которыми я оформляю заголовок, тело, порядковый номер и метки стать. Остановлюсь на них…”

С удовольствием исполняю обещанное 🙂
Итак, исходная статья успешно размножена (шаблон с примером по-прежнему доступен) и из нее получено N новых уникальных статей. WordPress правильной сборки установлен и настроен. Дело за малым – загрузить наш свежесозданный контент в слог и наслаждаться результатом!

В одиночный сателлит (скрипт для массовой публикации в блоги wordpress тоже будет опубликован, не пропусти!) контент проще всего, по-моему, загрузать, используя импорт XML, встроенный в движок wordpress. Именно этим путем я и намерен двигаться.

Что мы имеем на входе? На входе мы имеем файл, состоящий из множества записей вида:

<article_id>1</article_id>
<header>Yandex</header>
<body>Яndex — IT-фирма из Росии, являющая владельцем одноимённой системой поиска в Сети и интернет-порталом. <strong>Поисковая</strong> <strong>система</strong> «Яндекс» является 2-м по значимости неанглоязычным поисковым сервером после китайского Baidu и восьмой среди крупнейших <strong>поисковых</strong> <strong>сайтов</strong> мира по количеству обработанных <strong>поисковых</strong> запросов.</body>
<tags>yandex,поиск,яндекс,поисковая система</tags>
<category>Поиск,СЕО</category>

Примечание: тег “<article_id>” в данном способе массовой загрузки статей в wordpress не используется, но удалять его не слудует. Он нам ещё понадобится.

Данный файл, а точнее – записи из него нам нужно импортировать в наш wordpress-сателлит. Для решения указанной задачи и предназначен мой бесплатный скрипт под названием ACE-WPXMLCreator (домашняя страница).

Порядок работы с ним таков:


  1. Перекодировать исходный файл со статьями в Юникод  без использования BOM (UTF-8 without BOM). Под *nix это естественней всего будет сделать при помощи iconv:
    iconv FILE -f CP1251 -t UTF8 -o utf8-FILE
    ну а под windows рекомендую использовать бесплатный текстовый редктор “Notepad++“.
  2. Запускаем скрипт, указав в опциях вызова путь до исходного файла, а также, при желании, некоторые необязательные параметры:
    perl ACE-WPXMLCreator.pl articles_example.txt example_satellit.xml 2 open close
    (на опциях запуска подробней остановлюсь дальше).
  3. Импортируем получившийся в результате работы скрипта xml-файл при помощи штатного инструмента импорта wordpress.

А теперь – подробности.

Опции запуска следует указывать в таком порядке:

1. Обязательные опции:

articles_example.txt – имя исходного файла со статьями для сателлита;

2. Необязательные опции:

example_satellit.xml – имя выходного файла, называйте как захочется;
2 – количество статей, которые должны быть опубликованы за одни сутки, время публикации берется случайным образом. Данная опция позволит придать “человечность” вашему сателлиту, т.к. встроенный механизм отложенной публикации wordpress будет публиковать все запланированные статьи при наступлении указанного времени публикации.
Например, если у вас 5 статей и вы укажете публиковать по 2 за сутки, то на первые сутки будут запланированы к публикации 2 статьи, на вторые сутки – 2 статьи, на третьи сутки – оставшаяся 1 статья;
open – статус комментариев. open – разрешены, close – запрещены;
close – статус “пингбеков”. аналогично предыдущему.

Импорт статей в сателлит тоже несложно сделать:

1. Заходим в админку, далее Инструменты – Импорт – WordPress;
2. Выбираем созданный скриптом xml-файл со статьями для сателлита, жмём “Загрузить и импортировать файл“:

Загрузка XML3. Указываем, за чьим авторством будут числиться импортированные статьи. Можно создать нового автора, можно назначить уже существующего. Поддержки импорта вложений пока нет – соответственно галку можно не ставить. Нажимаем “Подтвердить“:

Назначение автора4. Вопреки радостной надписи, советующей “наслаждаться”, мы ещенемного поработаем 🙂

Блог успешно импортированА именно – идём в “Записи – Редактировать“. Необходимости в этом нет, но лично я предпочитаю лишний раз убедиться в правильности произведенных манипуляций. Убеждаемся, посмотрев на дату публикации записей:

Проверяем записиЗаписи запланированы для публикации и будут опубликованы автоматически, ваше участии более не требуется 🙂

Фактически, мы только что создали сателлит на wordpress за 5 минут!

В чём минус такого подхода (разового импорта контента в wordpress через xml)? Да в том, что весь контент (по крайней мере – большая его чатсть) должен быть готов заранее. Второй скрипт массовой публикации в блоги, который я обещал опубликовать, избавлен от этого недостатка.

В планах:

  1. Импорт картинок, находящихся в одной директории с исходным файлом;
  2. Разбивка итоговых файлов на части размером менее 2-х Мб (столько максимально позволяет за один раз импортировать движок wordpress);
  3. Заставить работать раскладку по категориям.

И как обычно, в завершение вы можете скачать сам скрипт для создания XML-шаблонов wordpress. В архиве находятся три файла:
ACE-WPXMLCreator.pl – исполняемый файл скрипта, для работы требует установленного интерпретатора Perl (например ActivePerl). Не забудьте выставить правильные права доступа к исполняемому файлу, в случае *nix-систем;
articles_example.txt – пример исходного файла со статьями для сателлита;
wp-satellit.xml – результат работы скрипта.

Онлайн-версия WPXMLCreator!
Удачи! 🙂

68 мыслей о “Генерация XML для импорта в wordpress – создаем сателлит”

  1. Здравствуйте! Подскажите, плиз, вот у меня есть файл HML, полученный на готовом Вордпресс блоге путем Инструменты – экспорт. По идее его можно использовать для создания алиаса, но при действии Инструменты-импорт в новом шаблоне ничего не происходит?

    1. Никогда не пробовал экспорт в HTML. Проблема может быть и в разных настройках импорта-экспорта, и в отличающихся версиях wordpress, и в каких-то плагинах для wordpress.

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

  2. Здраствуй dimio не мог бы ты подсказать одну вещь. я делаю статью в xml вернее хочу написать скрипт который будет это все дело за меня решать 🙂
    проблема в том что я уже делал xml в ручную для проверки но все статьи добавляются в одну самую первую рубрику,
    как указать имя рубрики в xml куда нужно добавлять, такая функция вообще есть?

    заранее спасибо за помощь 😉

        1. Хотя ладно вот в чем проблема.
          у меня есть xml файл который загружает пост в вордпресс
          все нормально он загружает но проблема в том что он загружает посты только в одну и туже рубрику, вопрос как указать имя рубрики куда я хочу загрузить пост?

  3. Ну так что кто мне поможет?

    админ подскажи как указать в xml файле категорию в которую и необходимо импортировать пост из xml файла???

    при условии что рубрика уже создана

      1. Вот спасибо, это работает!

        Только зачем писать это? nicename=”” ?

        И еще один вопрос как добавить пост в подрубрику? такое возможно?

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

  4. Здравствуйте! очень интересно, но у меня проблема, даже стыдно: Где проверяется окончания строк (LF – Unix)? В этом выдает ошибку и бьюсь, не могу найти.
    Спасибо заранее))

      1. Спасибо! Вы знаете, нашла ошибку – были лишние пробелы после
        Работает здорово, очень благодарна, только еще картинки не пробовала добавлять таким образом.

        1. Не за что. Пишите, если будут вопросы. А вообще рекомендую онлайн-версию (ссылка есть в конце этой заметки), она свежее и справка там вроде достаточно подробная.

  5. я когда нажимаю на ссилку Worldpress в меню импорта у меня вилазит: При исполнении API-запроса возникла неизвесная ошибка HTTP
    і всьо дальше ничево нету(

        1. 1. Чем этот xml создан? Если онлайн-версией – имеет смысл разбираться, иначе – бесполезно, скрипт из этой заметки я давно забросил.
          2. Uk – это украинский язык или какая-то украинская сборка специальная? Если есть возможность – сделайте экпорт какой-нибудь записи из блога и скиньте на почту мне например.

          1. 1.xml взял готовий из шаблона которий скачал ([ссылка] )
            2.Uk? да ето украинская версия worldpress.може ви не поняли но уменя другая проблема
            и она не в файле импортирования(а скорей всего в сборке…

            1. Там вообще про шаблон оформления, никакого отношения не имеет к импорту записей через XML. Я вам ничем не помогу – никогда не пользовался такими шаблонами, а с установкой тем оформления через админку никогда проблем не испытывал.

  6. при импорта xml появляется ошибка:
    Sorry, there has been an error.
    This does not appear to be a WXR file, missing/invalid WXR version number
    Что делать

  7. а чтоб много записей в один файл вложить надо просто в таком же формате размещать следующую в файле под первой

Добавить комментарий для Webma Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *