Кнопка «Перепост» из Вордпресс в ЖЖ (Livejournal)

На разных автономных блогах сейчас зачастую стоит множество всяких кнопочек: твиттер, фейсбук, вконтакте, гугл +1 и так далее... И это правильно, т.к. помогает продвигать блог, к тому-же если он ещё и интересный.

Однако полноценной кнопки перепоста в ЖЖ из WordPress практически нигде нет, за исключением единичных автономных блогов (этот блог как раз исключением и является). В основном ущербный перепост есть в составе какого-нибудь плагина социальных закладок, причем  перепост идёт всего-лишь тайтл и ссылки на пост (без текста), что не очень то радостно и, конечно-же,  неинформативно для перепостившего.

Сейчас я расскажу как сделать кнопку перепоста анонса вашей статьи (до тега more или "Читать далее...") в ЖЖ с ссылкой на ее полную версию статьи.

То есть, точно также, как если бы Ваш блог находился на площадке Livejournal.  Задача довольно простая — нужно отправить POST-запрос на сайт ЖЖ, что и сделает эта форма:

<noindex>
<div align="center">
<form method="post" action=http://www.livejournal.com/update.bml name="updateForm" rel="nofollow" target="_blank">
 <div style="display:none;visible:false">
  <input type="text" maxlength="100" name="subject" id="subject" class="text" size="43" value="<?php  the_title(); ?>"/>
  <textarea rows="1" cols="1" name="event"><?php kama_excerpt(); ?>
   <div align="right" style="">Читать далее на блоге <a href="<?php the_permalink(); ?>"><?php bloginfo('name'); ?></a>
   </div>
  </textarea>
</div>
 <div class="lj-image">
  <input type="image" src="ССЫЛКА НА КАРТИНКУ ВАШЕЙ КНОПКИ"  title="Перепостить в ЖЖ">
 </div>
</form>
</div>
</noindex>

Поменяйте путь к картинке, которая будет служить кнопкой и вставьте эту форму в страницу singe.php вашего блога в нужное место. Так же можете это все оформить стилями на свое усмотрение. В конце анонса к записи будет добавлена ссылка на ваш блог с текстом "Читать далее на блоге [Название блога]".

Все что осталось сделать — добавить в файл functions.php код, который будет «выдирать» анонс поста (до тега more). Копируем в functions.php вот этот код:

function kama_excerpt($args=''){
    global $post;
        parse_str($args, $i);
        $maxchar     = isset($i['maxchar']) ?  (int)trim($i['maxchar'])     : 350;


        $text        = isset($i['text']) ?          trim($i['text'])        : '';
        $save_format = isset($i['save_format']) ?   trim($i['save_format'])         : false;
        $echo        = isset($i['echo']) ?          false                   : true;
    if (!$text){
        $out = $post->post_excerpt ? $post->post_excerpt : $post->post_content;
        $out = preg_replace ("!\[/?.*\]!U", '', $out ); //убираем шоткоды, например:[singlepic id=3]
        // для тега <!--more-->
        if( !$post->post_excerpt && strpos($post->post_content, '<!--more-->') ){
            preg_match ('/(.*)<!--more-->/s', $out, $match);
            $out = str_replace("\r", '', trim($match[1], "\n"));
            $out = preg_replace( "!\n\n+!s", "</p><p>", $out );
            $out = "<p>". str_replace( "\n", "<br />", $out ) ."</p>";
            if ($echo)
                return print $out;
            return $out;
        }
    }
    $out = $text.$out;
    if (!$post->post_excerpt)
        $out = strip_tags($out, $save_format);
    if ( iconv_strlen($out, 'utf-8') > $maxchar ){
        $out = iconv_substr( $out, 0, $maxchar, 'utf-8' );
        $out = preg_replace('@(.*)\s[^\s]*$@s', '\\1 ...', $out); //убираем последнее слово, ибо оно в 99% случаев неполное
    }
    if($save_format){
        $out = str_replace( "\r", '', $out );
        $out = preg_replace( "!\n\n+!", "</p><p>", $out );
        $out = "<p>". str_replace ( "\n", "<br />", trim($out) ) ."</p>";
    }
    if($echo) return print $out;
    return $out;
}

Результат работы кнопки можете увидеть, нажав на нее внизу или вверху любого поста в этом блоге. Можете даже перепостить, если у вас есть аккаунт в ЖЖ

 






Метки:


Комментарии:


    Поиск по сайту
    Архивы

    Инстаграм-канал Оптимиста — @oppps.ru

    © 2018   ОПТИМИСТ   //  Вверх   //