Click

Генерация 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:

    1
    iconv FILE -f CP1251 -t UTF8 -o utf8-FILE

    ну а под windows рекомендую использовать бесплатный текстовый редктор “Notepad++“.

  2. Запускаем скрипт, указав в опциях вызова путь до исходного файла, а также, при желании, некоторые необязательные параметры:
    $./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 58 комментариев

Comments

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

  1. Аноним пишет:

    Круто!

  2. BoлкBepнyлcя пишет:

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

  3. fuchfliliag пишет:

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

  4. Webma пишет:

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

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

    • dimio пишет:

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

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

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

      1
      wpxmlcreator.pl имя_файла.txt
  5. Webma пишет:

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

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

    • dimio пишет:

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

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

  6. Webma пишет:

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

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

    • Webma пишет:

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

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

  7. vredin пишет:

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

    • dimio пишет:

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

  8. vredin пишет:

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

    • dimio пишет:

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

      • vredin пишет:

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

        • dimio пишет:

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

          • vredin пишет:

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

  9. Макс пишет:

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

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

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

  10. Макс пишет:

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

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

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

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

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

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

  11. Макс пишет:

    У меня xp

  12. Макс пишет:

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

  13. Макс пишет:

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

  14. Макс пишет:

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

  15. Макс пишет:

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

  16. Макс пишет:

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

  17. Макс пишет:

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

    • dimio пишет:

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

  18. Макс пишет:

    Спасибо я разобрался )

  19. Виктория пишет:

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

    • dimio пишет:

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

  20. Евгений пишет:

    а можно в скрипте (в импорте) указать slug записи?

    • dimio пишет:

      Давайте подробней. Пока вопрос не понял.

      • Евгений пишет:

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

Leave a Reply