Кросспост Wordpress в Livejournal: Live+Press, LJ crosspost
Today I set up plugin “LJ crosspost” for posting directly from wordpress to livejournal. Unlike Live+Press which has many interesting features, it’s not so customizable. However, it is enough for me and it works a little faster then the Live+Press. And finally, it works with russian language))) But I missed one feature - it’s quite annoying that you can only post to livejournal the same text as to wordpress. I wanted to have two quite different variants of text. So I modified plugin a little to work with excerpts. If you need the same feature - just replace the first code fragment with the second. You can check cross-posted entry here.
Решила всё-таки дублировать посты из своего основного блога в [ЖЖ](https://jehy.livejournal.com). Хотя бы для оповещения. Отвечать там мне не надо. По поводу процесса: есть два плагина, которые реализуют такой кросспост.
Live+Press очень красивый, со множеством настроек, полностью заменяющий интерфейсы жж… Только вот с русским языком он не работает. А я так и не смогла его отстроить для этого. В интернете тоже решений нет. Обещают в следующей версии сделать поддержку.
LJ crosspost. Не такой красивый, меньше опций. Однако работает по ощущениям быстрее и не так заси… засоряет базу :) И вдобавок работает с русским языком. Сразу и без ковыряния. Ещё один плюс - для него есть русификация. Ссылку искать не буду так как у меня все интерфейсы на английском.
Единственный момент - LJ crosspost имеет два варианта:
Целиком копировать запись в жж
Копировать только до вордпрессовского тэга “<!–more–>” А мне хотелось, чтобы записи могли существенно различаться. Для этого мы можем использовать такое поле в wordpress как excerpt. По-русски это что-то вроде краткого содержания. Итак, мы пишем это содержание - а оно появляется в жж. Удобнее ведь? Сделать элементарно.
Для этого открываем файл “lj_crosspost.php” (это там единственный php файл), после чего берём фрагмент
if(!$post->post_password) {
// and if there's no tag, we can spit it out and go on our
// merry way
if(strpos($post->post_content, "") === false) {
$the_event .= apply_filters('the_content', $post->post_content);
}
else {
$content = explode("", $post->post_content, 2);
$the_event .= apply_filters('the_content', $content[0]);
switch($options['more']) {
case "copy":
$the_event .= apply_filters('the_content', $content[1]);
break;
case "link":
$the_event .= sprintf('
', get_permalink($post_id), $post_id) .
__('Read the rest of this entry »', LJXP_DOMAIN) .
'
';
break;
case "lj-cut":
$the_event .= '' . apply_filters('the_content', $content[1]) . ' ';
break;
}
}
}
И жестоко заменяем на
if(!$post->post_password)
$the_event=apply_filters('the_content',$post->post_excerpt).'Read the rest of this entry »';
Номера строк идентичны. Думаю, и в русской версии так же.
И получаем то же, что и у меня.
Примеры кросспоста в лайвжорнал - здесь, в моём жж. Дальше буду рассказывать другие решения для миграции с livejournal.