Реализация кросспостинга в LiveJournal (ЖЖ), плагин wordpress
Friday, 22 Feb 08 в 2:09
Продолжаю тему кросспостинга. С теоретической стороной вопроса мы ознакомились в прошлый раз. Если, взвесив все за и против, вы все же решились создать трансляцию в ЖЖ, то данная заметка может вам очень пригодиться. Остальным будет просто полезно почитать для общего развития. Кто знает, может походу текста, убедившись, что в данном процессе нет ничего сложного, вы тоже захотите реализовать кросспостинг.
Для осуществления кросспостинга нам понадобиться соответствующий плагин – lj_crosspost_2.0. Установка его достаточно простая: заливаем файл плагина lj_crosspost.php в папку wp-content/plugins/ и в адмике активируем его в меню Plugins. После этого в пункте Options можно появится вкладка с настройками модуля – LiveJournal.
Рассмотрим все доступные опции более подробно для тех, кому сложно или просто лень вчитываться в английские описания полей:

LiveJournal-compliant host – дело в том, что плагин поддерживает кросспостинг не только в сам LiveJournal, а и подобные сервисы, использующие его движок. Если вы хотите поститься на один из таких сайтов – впишите его хост в этом поле.
LJ Username – имя пользователя ЖЖ.
LJ Password – ваш пароль на ЖЖ. При изменении настроек он не отображается, тем не менее вводить повторно не требуется. Только если вы захотели изменить его значение.
Community – если вы хотите постить сообщения в некоторые сообщество, здесь нужно указать его название. В противном случае просто оставьте поле пустым.

Crosspost header/footer location – расположение подписи о том, что данный блог является кросспостом и где можно найти оригинал чтобы прокомментировать. Доступны варианты либо перед записью (header) либо после (footer).
Set blog name for crosspost header/footer – здесь выбирается имя блога в тексте: первая настройка оставляет название, определенное автоматически, вторая позволяет написать свой вариант.
Custom blog title – если в предыдущей настройки был выбран свой вариант имени блога, то в этом поле следует непосредственно указать требуемое название.
Custom crosspost header/footer – по умолчанию до или после постов выводится сообщение на английском – «Originally published at [имя_блога]. Please leave any comments there». В данном же поле можно полностью изменить формат выводимой записи. Для ее формирования предлагается использовать 4 дополнительных параметра:
- [blog_name] – имя блога, определенное выше.
- [blog_link] – ссылка на ваш блог.
- [permalink] – ссылка на конкретный пост, под которым располагается надпись.
- [comments_link] – ссылка на блок комментариев той или иной записи в вашем оригинальном блоге.
Внимание! Здесь был замечен первый глюк плагина. Использование русских букв в данном поле вызывает неоднозначную реакцию после обновления опций или запуска кросспостинга – а именно непонятным образом слетает кодировка введенного текста. Это не есть критично, но при повторном сохранении настроек текст в этом поле обязательно нужно будет изменить на правильный. В противном случае в блоге на ЖЖ появятся нехорошие нечитаемые символы:)
Я попытался исправить этот глюк в самом коде плагина, но так и не нашел конкретное место изменения кодировки. Некоторые промежуточные тесты показали, что хранится запись правильно и вполне читаемо. Поскольку этот глюк не критичен, я не стал продолжать поиски. Если у вас все же испортилась кодировка в блоге-клоне, не паникуйте, спокойно исправьте текст в поле Custom crosspost header/footer и проведите кросспост заново. Чтобы было понятнее приведу текст, используемый мною:
<p style="border: 1px dotted black; padding: 3px;"><b>Внимание! Оригинал статьи размещен в моем блоге <a class="snap_shots" href="[blog_link]">[blog_name]</a>.<br/>Чтобы принять участие в обсуждении пройдите по <a class="snap_shots" href="[comments_link]">этой ссылке</a>.</b></p>

Post Privacy – определяем уровень доступности экспортируемых в LJ записей – публичны/скрыты/только для друзей.
LiveJournal Comments – управление комментированием. Выбор первой настройки означает, что пользователь должен будет в обязательно порядке перейти на ваш блог дабы оставить свой комментарий. Второй вариант позволяет включить комментирование в самом ЖЖ.
LiveJournal Tags – первая опция будет подставлять в качестве тэгов ЖЖ блога значения категорий из вашего оригинального сайта. Чтобы отключить эту возможность выберите второй пункт.
Handling of – данная настройка определяет каким образом LiveJournal должен реагировать на тег . Доступны варианты: Link back to WordPress – ставится ссылка на оригинальный пост, Use an lj-cut – используется аналогичный тег в ЖЖ, Copy the entire entry to LiveJournal – копируется текст заметки целиком без всяких разбиений.
Category Selection – выбираете категории, которые вы хотите транслировать при кросспостинге.
После установки всех настроек нажимаем кнопку Update Options and Crosspost All WordPress entries. Справа от нее находится кнопка, позволяющая только обновить опции без произведения операции кросспостинга. Все сохраненные в данном случае настройки будут справедливы лишь для последующих постов.
Проблемы: могут возникнуть у пользователей с кодировкой блога windows-1251. Если вы используете сборку от maxsite.org, то вам должно помочь добавление в самое начало кода плагина (сразу после комментариев) строки:
$LJ_CLIENT_CHARSET = “UTF-8″;
Еще один вариант исправление ошибки. Это замена строк:
$args['event'] = $the_event;
$args['subject'] = apply_filters(‘the_title’, $post->post_title);
На
$args['event'] = iconv(‘CP1251′, ‘UTF-8′, $the_event);
$args['subject'] = iconv(‘CP1251′, ‘UTF-8′, apply_filters(‘the_title’, $post->post_title));
Кстати, Денис Болтиков предлагает создавать для блогов-клонов синдикационные аккаунты:
Для трансляции своего блога в ЖЖ надо использовать синдикационные аккаунты. В итоге не будет создаваться отдельный дневник, на главной странице такого аккаунта вы увидите только заголовки, а в своих френдлентах ваши читатели увидят нормальные посты со ссылкой на ваш блог.
Как по мне, с этим вариантом получится много возни и дополнительных сложностей. Если вдруг администрации ЖЖ и забанит аккаунт за рекламу (в чем я очень сомневаюсь), новую учетную запись создать можно за считанные минуты.
На последок хотелось бы добавить, что в процессе кропсспостинга могут возникнуть разные проблемы, не рассмотренные сдесь. Причин может быть уйма – старая версия WordPress, временные глюки в ЖЖ или в самом плагие. Люди пишут, что иногда при редактировании в оригинальном блоге информация не заменяется в LiveJournal или, например, при сохранении в черновиках новый пост все равно добавляется на ЖЖ. В общем, с хорошим кросспостингом везет не каждому.
В данный момент я использую версию WordPress 2.3.x, пока все работает нормально. При появлении дополнительной информации обязательно напишу. Если что-то в посте оказалось вам непонятным, задавайте вопросы в комментариях.
UPD 7.02.2009: В последнее время с плагином возникали некоторые сложности, насколько он работоспособен сейчас мне лично сказать сложно. Я практически перестал делать кросспост. Вот нашел еще одну разработку для этих целей – LJ XP.

Сегодня, как и обещал, немного о реализации блогролла под WordPress. Что это за штука такая и зачем нужна – читаем в предыдущей заметке: 



