Кросспост 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). Хотя бы для оповещения. Отвечать там мне не надо. По поводу процесса: есть два плагина, которые реализуют такой кросспост.
  1. Live+Press очень красивый, со множеством настроек, полностью заменяющий интерфейсы жж… Только вот с русским языком он не работает. А я так и не смогла его отстроить для этого. В интернете тоже решений нет. Обещают в следующей версии сделать поддержку.

  2. LJ crosspost. Не такой красивый, меньше опций. Однако работает по ощущениям быстрее и не так заси… засоряет базу :) И вдобавок работает с русским языком. Сразу и без ковыряния. Ещё один плюс - для него есть русификация. Ссылку искать не буду так как у меня все интерфейсы на английском.

    Единственный момент - LJ crosspost имеет два варианта:

  3. Целиком копировать запись в жж

  4. Копировать только до вордпрессовского тэга “<!–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.