Генерация 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!
Удачи! :)



Category Рубрики: seo, WPXMLCreator, Кодинг | Tag Метки: , , , | Comments 68 комментариев »

68 комментариев

  1. Аноним says:

    Круто!

  2. Действительно, как люди говорят, интересное рядом! :)

  3. fuchfliliag says:

    Привет! С удовольствием почитал Ваш блог. Хочу также поздравить Вас и всех читателей этого блога с новым 2010 годом. Удачи всем, новых жизненных побед и исполнения всех ваших замыслов. :)

  4. Webma says:

    Приветствую автора блога. Немного не разобралась со скриптом, а именно с форматом указываемых опций (
    Заполняла по-разному:
    $infile = shift ‘\articles_example.txt’;
    $infile = shift ‘articles_example.txt’;
    $infile = shift || ‘\articles_example.txt’; и др.варианты, ОДНАКО УВЫ

    но никак не получается
    к примеру если файл лежит на рабочем столе, то в каком формате в настройках указывать путь?
    Или может запускаю скрипт не через ту прогграмму, я в этом в принципе нуб :)
    запускаю через ActivePerl (вернее пытаюсь)
    что я делаю не так?

    • dimio says:

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

      1
      wpxmlcreator.pl "c:\documents and settings\%username%\Рабочий стол\имя_файла.txt"

      А вообще для простоты советую онлайн-версию генератора попробовать, у неё и возможностей больше.
      P.S. А если доп. возможности не нужны, а с указанием пути разобраться не получается — положите скрипт и нужный файл со статьями в одну папку и запускайте так:

      1
      wpxmlcreator.pl имя_файла.txt
  5. Webma says:

    Прошу прощения за возможно архиглупый вопрос, но что значит:
    «запускайте так:
    WPXMLCreator.pl articles_example.txt»?

    где указывать этот… парметр чтоли

    • dimio says:

      В консоли запускать. «Пуск-Выполнить-ввести cmd«.
      Если положите скрипт и файл со статьями в одну папку, то можете и внутри скрипта поменять:
      $infile = shift || ‘articles_example.txt’;
      и запускать двойным щелчком.

      Из консоли лучше тем, что после выполнения окно не закроется и можно будет увидеть, всё ли успешно прошло.

  6. Webma says:

    Благодарю автора за терпение.
    Скрипт уже генерирует xml файлик :)
    правда к сожалению из файла с 20 постами он почему то берёт только первый для записи в xml :(
    Подозреваю, что дело тут в каком-то разграничителе между постами, который я упускаю:

    »

    ?что должно быть здесь?

    «

    • Webma says:

      в сообщении не отобразился код:

      «header/header
      body/body
      tags/ags
      categorycategory
      ?что должно быть здесь?
      header/header
      body/body
      tags/ags
      categorycategory»

  7. vredin says:

    Malformed multipart POST — ошибку выдает онлайн скрипт. ошибка в скрипте или особенность моего файла на импорт?

    • dimio says:

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

  8. vredin says:

    подскажите, если я генерирую файл, который будет входящим для вашего скрипта, как лучше указать переход на новую строку? или это не важно и можно кидать одну строку head,body,tags,categories?

    • dimio says:

      Кидать в одну строку нельзя — перевод строк между блоками статьи, заключёнными в теги, должен быть.
      Первую часть вопроса я не понял. Технически перевод строки должен быть в unix-стиле — «\n», без возврата картеки.
      Если что — посмотрите справку к онлайн-версии генератора. Там же есть исходный файл с примером разбивки.

      • vredin says:

        вы ответили на мой вопрос :)
        у меня как раз была предыдущая ошибка из-за того(как мне кажется) что у меня перевод был с возвратом каретки \n\r

        • dimio says:

          Да, возврат каретки не обрабатывается (может и зря, но привычка работы в linux сильна :) ).
          Прекрасно, что проблема решена.

          • vredin says:

            насчет работы — еще проверим.. я вам письмо отослал, хочу попробовать advanced версию ;)

  9. Макс says:

    Привет. Вчера приобрел прогу. не могу разобраться как её запустить. вожусь уже 2 час. хелп!

    работаю с исходными файлами.
    программу пытаюсь запустить через пуск-выполнить-cmd
    прописываю полный путь.

    нажимаю ентер. процесса нет

  10. Макс says:

    Процесс.
    1. Захожу в total com.
    [ссылка]

    2. Запускаю.
    [ссылка]

    3. Запускаю cmd
    [ссылка]

    4. Пытаюсь запустить в cmd файл pl
    [ссылка]

    5. Нажимаю интер.
    он мне открывает блок нот
    [ссылка]

    Как запустить файл pl?

  11. Макс says:

    У меня xp

  12. Макс says:

    Вроде чучуть догнал сейчас отпишусь.)

  13. Макс says:

    нет не получилось

  14. Макс says:

    Я твой он лайн сервис немножко грузанул)

  15. Макс says:

    нет, но пытаюсь установить(

  16. Макс says:

    сейчас буду побывать через денвер

  17. Макс says:

    Где есть мануал по установке?

    • dimio says:

      Мануал по установке ActivePerl? Не знаю даже. По-моему там достаточно периодически нажимать «Далее» в процессе установки и только.

Trackbacks / Pingbacks

  1. Архив мыслей « Митрич Борода – уютный бложик на wordpress
  2. Создание сателлита. Импорт XML в Wordpress » Wordpress XML Creator
  3. Уникализатор контента Wordpress Unikalizator | Архив мыслей

Добавить комментарий