RSS Лента: Производим тюнинг

rss лента

Сидел Палыч в последний раз руками анонсы на статью раскидывал по интернету. И так это его задолбало, что дальше некуда. Это ж надо, человек с высшим техническим образованием, с почти что 30-летним стажем автоматизатора сидит и тупо копипастит уже больше часа. Все решил Палыч, пора это дело срочно автоматизировать. С чего же начнем? Конечно с RSS ленты нашего сайта!  Вы что, не знали, что на Вашем сайте есть RSS лента? Так вот, я Вас обрадую. Есть! И даже не одна. Есть общая лента во множестве принятых для RSS стандартов. Есть ленты и по категориям, имеющимся на вашем сайте. Хотите посмотреть? Да, запросто! Наберите в строке вашего браузера вот такой вот адрес

http://ВАШ_САЙТ/feed  или http://ВАШ_САЙТ/?feed=rss2

Только вместо ВАШ_САЙТ впишите, конечно, Ваш сайт. Ну что, увидели свой RSS канал? И как он Вам?  Палычу не понравился. Ну что это за RSS feed, если в нем даже картинок нету. Потом непонятно откуда информация и кто автор, т.е. копирайта не хватает. А еще хорошо бы ссылочку после  анонса на страницу первоисточника с анкором “Прочитать статью полностью”.

Стал тут Палыч репу чесать и думу думать, как же это дело исправить? Думал он, думал и сочинил (правда, не совсем сам, часть в интернете слямзил) вот такой кусочек кода:

function lusp_post_image_html( $html, $post_id, $post_image_id ) {
  $html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">' . $html . '</a>';
  return $html;
}
add_filter( 'post_thumbnail_html', 'lusp_post_image_html', 10, 3 );

function lusp_thumbnail_feeds($content) {
    global $post;
    $siteurl  = get_bloginfo('url');
    $sitename = get_bloginfo('name');
    $content = preg_replace("#<a.*\/a>#","", $content); 
    if(has_post_thumbnail($post->ID)) {   
        $content = '<div style="width: 500px">' .
                      get_the_post_thumbnail($post->ID, 'large').
                    '</div><br>' .
                    $content;
    }
    $content = $content .
               '... <a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">Прочитать статью полностью &raquo; </a>'.
               '<hr />' .
               '<small>Copyright © '.date("Y").' <a href= "'.$siteurl.'" title="'.$sitename.'" ><b>' .$sitename.'</b></a>. Все права защищены. ' .
               'При перепечатке любых материалов с сайта <a href="'.$siteurl.'" title=""><b>'.$siteurl.'</b></a> активная ссылка на него обязательна.</small>';

   return $content;
}
add_filter('the_excerpt_rss',  'lusp_thumbnail_feeds');
add_filter('the_content_feed', 'lusp_thumbnail_feeds');

Вставил он его в самый конец файлика functions.php прямо перед закрывающим тегом «?>», который лежит в каталоге темы и, о счастье, получил то, что хотел:

  • Заголовок поста с активной ссылкой на первоисточник – есть;
  • Картинка из статьи — имеется;
  • Небольшой анонс из статьи – присутствует;
  • Ссылка с нужным анкором – тоже есть;
  • И даже в подвале имеется строка копирайта аж с двумя ссылками на главную страницу сайта.

 

“Вот это правильная RSS лента” — подумал Палыч и остался доволен проделанной работой.  При помощи такой RSS ленты можно автоматизировать распространение своих ссылок хоть в 100 мест, хоть в 200. И все это практически задарма. Ничего покупать не надо. Но о том, как Палыч это сделал, поговорим в следующей статье.  Сначала будем оформлять подписку для читателей Вашей ленты на Вашем сайте, а заодно научимся закидывать анонсы новых статей в Twitter. Напишу очень скоро. Возможно даже завтра.  Продолжение следует…

 

P.S. Если было интересно, поделитесь этой статьей с друзьями. Кнопочки соц. сетей ищите ниже. Если что-то не поняли, прошу вопросы в комментариях.

Палыч.

Related Posts

This Post Has 8 Comments

  1. Здравствуйте !
    У меня такое впечатление, что моя лента не работает.
    Проверила рекомендованными способами- в первом случае пишет, что сайт закрыт роботом
    Во втором случае — показывает в поисковой системе всё что там есть с моего сайта
    Не подскажете ли, что такое у меня на блоге происходит, потому что посещаемость упала втрое, и как я ни стараюсь- никак не могу сдвинуть с мертвой точки

      1. Спасибо за оперативный ответ !
        Он самый, родимый…Только у меня вот что выдает Гугл-www.samobrankamadeinturkey.com/search/борек/feed/rss2/
        Описание веб-страницы недоступно из-за ограничений в файле robots.txt.
        А вот что — Яндекс- Искомая комбинация слов нигде не встречается.
        Поискать «http://www.samobrankamadeinturkey.com/feed» в других поисковых системах:

        1. Мила
          http://www.samobrankamadeinturkey.com/search/борек/feed/rss2/ — судя по всему, эта страница и не должна быть доступна. Это страница результатов поиска по Вашему блогу. А она и должна быть закрыта от роботов и Гугла и Яндекса как раз в файле robots.txt. Надо смотреть, что у Вас там написано, но это уже совсем другая история.

          Чтобы увидеть RSS ленту, эту строчку надо вводить не в строку поиска Гугла или Яндекса, а в строку ввода URL Вашего браузера.

  2. Что то не так, вставляю код через редактор в админке, нажимаю обновить файл и у меня вся админка превращается акру-кодабру.
    Пробывал кодировку поменять через Нотепад тоже самое.

    1. Проверил еще раз. Код для вставки брал прямо с сайта. Все работает.
      Может Вы не в тот function.php вставляете. Нужно именно в файл вашей темы.
      Лежит по пути wp-content\themes\НАЗВАНИЕ ВАШЕЙ ТЕМЫ\functions.php.
      И лучше не через редактор в админке, а скачать файлик к себе на комп, добавить код, а потом файлик обратно на сервер.
      Или, возможно, моя доработка конфликтует с Вашей темой. Тут уж помочь нельзя 🙁

        1. Я еще об одном подумал. Вы этот код вставляете перед закрывающим тегом PHP или после? В конце файла будет тег «?>». Надо прямо перед ним.

          Если не получится, пришлите мне свою тему на support@lusp.ru. Я посмотрю в чем дело. Даже самому стало интересно, что у Вас там такое. 🙂

Comments are closed.

Сергей Лукьянов