Скрипт для WordPress “Добавить в закладки”

Поговорим о кнопках добавления ссылки на пост в социальные закладки, тех, которые мы обычно наблюдаем в начале или в конце каждого поста на многих блогах.

На этом блоге средства социализации постов были поочередно реализованы 3-мя разными способами: сначала я вставлял коды ссылок на социалки вручную, редактируя шаблон WP, затем поставил плагин, делающий то же самое, и, наконец, остановился на 3-м способе, когда эти ссылки выводятся полностью с помощью технологии JavaScript.

Хочу отметить, что первые 2 варианта совсем не нравились мне. Все потому, что в результате под каждым постом блога я получал ужасающий кусок хтмл-кода (с инлайновым ява-скриптом) внушающего размера. Чтобы увидеть ЭТО, посмотрите в исходный код, например, такой страницы. Поисковики наверняка пугаются, видя сие безобразие.

Помимо размера кода не прельщало и то, что в результате появлялось множество лишних исходящих ссылок. Сами понимаете, что абсолютно “левый” тег <noindex>, равно как и атрибут rel="nofollow" – не панацея.

Мне нужно было простое решение, так сказать, два в одном.

Вадим Ласто в очередной раз удивил меня, когда я обнаружил, что на его блоге появились ссылки добавления в социальные закладки и реализованы они с помощью небольшого ява-скрипта. Это и было то, что нужно мне.

Полагая, что данное решение придется по душе не только мне, расскажу, как данный скрипт адаптировать под популярный движок WordPress, на котором работает большинство stand-alone блогов (автор скрипта дал на это добро).

Процесс установки довольно прост, рассмотрим его последовательно:

  1. Необходимо в файл functions.php Вашей WP-темы добавить нижеследующий код (если такого файла еще нет, то создать его):
    <?php
    
    function social() {
    
    	$u = urlencode(get_permalink());
    	$t = get_the_title();
    
    $social=<<<EOF
    function so(u,t) {
       for (i=0; i< s.length; i=i+2) document.write(
          '<a target="blank" href="http://'+s[i]+'/'+s[i+1].replace('{u}',u).replace('{t}',t)+'">'+
          '<img src="/wp-content/themes/default/social/'+s[i]+'.ico" border="0" width="16" height="16" alt="Добавить в '+s[i]+'"></a>'
          );
    }
    var s=new Array(
       "del.icio.us","post?url={u}&title={t}",
       "news2.ru","add_story.php?url={u}",
       "google.com","bookmarks/mark?op=edit&bkmk={u}&title={t}",
       "bobrdobr.ru","add.html?url={u}&title={t}",
       "memori.ru","link/?sm=1&u_data[url]={u}&u_data[name]={t}",
       "moemesto.ru","post.php?url={u}&title={t}",
       "mister-wong.ru","add_url/?bm_url={u}&bm_description={t}",
       "rumarkz.ru","bookmarks/?action=add&popup=1&address={u}&title={t}&description={t}",
       "rucity.com","bookmarks.php?action=add&address={u}&title={t}&description=",
       "linkstore.ru","servlet/LinkStore?a=add&url={u}&title={t}",
       "myscoop.ru","add/?title={t}&URL={u}",
       "vaau.ru","submit/?action=step2&url={u}",
       "newsland.ru","News/Add/type/news/"
    );
    
    EOF;
    
    	 $social=<<<EOF
    
    <p class="social">
    <script>
    $social so (
          '$u',
          encodeURIComponent('$t')
       );
    </script>
    </p>
    
    EOF;
    
    echo $social;
    
    }
    
    ?>
    
  2. Сохранить иконки социалок в какую-либо папку.
  3. В вышеуказанном коде заменить путь /wp-content/themes/default/social/ на путь к Вашей папке с иконками.
  4. Добавить в свою WordPress-тему в то место, где желаете выводить ссылки на социалки, такой код: <?php social(); ?>
  5. Готово. То, что получается в результате, Вы можете увидеть, посмотрев код данной страницы.

Для удобства Вы можете скачать готовый архив, содержащий и файл functions.php, и иконки социалок.

В результате мы получили значительно уменьшенный код и решили задачу с излишними исходящими ссылками. Добавление в скрипт новых ссылок на социальные сервисы, думаю, труда не составит, все делается по аналогии.

* * *

Услуга, предлагаемая заводом-производителем «Росблок» на сайте rosblok.ru – доставка пенобетонных блоков разных марок (теплоизоляционный, конструкционный, конструкционно-теплоизоляционный), а также сопутствующих товаров.

Комментарии (46)

  1. moff
    29 января 2008 г. в 21:15

    Интересное решение, надо будет попробовать…В любом случае спасибо).

  2. DeadLy
    1 февраля 2008 г. в 09:52

    [quote post=”109″]И еще, если эту запись добавляешь последней в массиве, то запятую в конце не надо.[/quote]
    Ошибки всё равно по идее не должно быть

  3. Саня
    9 марта 2008 г. в 10:41

    Подскажите пожалуйста куда добавить
    Уже все места перепробовал, подскажите пожалуйста.

  4. 18 марта 2008 г. в 22:20

    Саня возмите “Одну кнопку” – http://odnaknopka.ru/get/. И напрямую вставьте в шаблон своего блога.

  5. SEO
    2 апреля 2008 г. в 22:58

    Мне как-то более приятен вариант с “одной кнопкой!. Но хотя кому как, кто и поизвращаться любит :))

  6. 2 апреля 2008 г. в 23:21

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

  7. 8 апреля 2008 г. в 16:52

    [quote comment=”3218″]SEO, а вот я не сторонник сервисов, которые требуют загружать код с их сайта, как это сделано у “Одной кнопки” [/quote]
    Dimox, аналогично. Собственно полностью разделяю мысли в посте (эмм, это не спам комментов).
    Предлагаю посмотреть мой вариант скрипта на javascript, подключается чрезвычайно просто на любые сайты-блоги-cms:
    http://web-mastery.info/scripts/javascript-83.html
    Положительный момент – минимум кода на странице(код сервисов реально разворачивается на клиентской машине), простое добавление/удаление и, главное, скрипт лежит на своем хосте.

  8. 8 апреля 2008 г. в 20:20

    sabotage, да, это тоже хорошее решение.

  9. 15g
    13 мая 2008 г. в 13:26

    Прошу прощения за ламерский вопрос, но вот такая штука получается.
    У меня в теме посты выводятся, как я понимаю, вот таким кодом:

    if (have_posts()) : while (have_posts()) : the_post();

    Если тупо вставить вызов функции после the_post(); то почему-то блок иконок выводится перед собственно постом, а не после, как вроде бы должно быть. Совершенно не понимаю, почему такое =(
    Как исправить? Заранее спасибо. И в любом случае огромное спасибо за сам код.

  10. 13 мая 2008 г. в 15:31

    15g, все дело в том, что текст самого поста выводит код the_content() (или the_excerpt()). Вставляйте функцию закладок после него, и все будет гуд ;)

  11. 15g
    13 мая 2008 г. в 16:03

    Упс. Спасибо.
    Надо было не разбираться в коде, оказывается, а курить вопрдпрессовский кодекс =))

  12. 14 мая 2008 г. в 01:23

    Кодекс вообще штука рулезная, жаль на английском, мне например сложно немного, чуть отвлекся – потерял нить :(

  13. Dux
    2 октября 2008 г. в 22:21

    я так понял, что у тебя счас немного измененный скрипт стоит?
    можешь его выложить?

  14. 3 октября 2008 г. в 10:13

    Dux, возможно, однажды выложу его.

  15. Сергей
    15 октября 2008 г. в 19:13

    То, что получается в результате, Вы можете увидеть, посмотрев код данной страницы

    К сожалению, так не получается. У вас в коде выводится всего одна короткая строчка ()
    А у меня весь скрипт целиком.
    (

  16. 15 октября 2008 г. в 20:33

    Сергей, пост написан почти года назад. Скрипт за это время изменился. Может быть однажды напишу о новом.

  17. Yury
    6 декабря 2008 г. в 23:26

    Да, спасибо. Скрипт от Ласто работает практически везде, не только на WordPress. Кстати недавно написал пост о том, как его встоить в любой динамический сайт. Надеюсь будет полезно…

  18. 17 июля 2009 г. в 13:26

    Добрый день.
    Воспользовался материалом данного поста, установил иконки для регистрации в социалках. Сейчас обследовал Ваш блог , и не нашел ничего подобного, в связи с чем возник вопрос: насколько наличие этих кнопок оправдывает себя, есть ли какой нибудь пусть самый минимальный эффект от этого сейчас? или тема уже себя исчерпала и смысла городить огород уже нет?

    1. 17 июля 2009 г. в 17:51 / ответ на коммент ownru

      Сейчас обследовал Ваш блог , и не нашел ничего подобного

      Потому что теперь используется усовершенствованный скрипт.

      насколько наличие этих кнопок оправдывает себя, есть ли какой нибудь пусть самый минимальный эффект от этого сейчас? или тема уже себя исчерпала и смысла городить огород уже нет?

      Если на блоге публикуется интересный многим читателям материал, то, конечно, оправдывает.

  19. Servest
    2 июля 2010 г. в 12:20

    Помучался я с выводом иконок. Оказалось дело было в .htaccess. Проверил скрипт “летает” по сравнению с “тормозящей” “одной кнопкой”. Спасибо :)

  20. Андрей
    28 июля 2010 г. в 14:03

    Спасибо за скрипт, как раз хочу реализовать меню закладок на своем сайте!

Ваш комментарий

Жирный текст

Ссылка

Цитата

Внутристрочный код

CSS-код

HTML-код

JavaScript-код

PHP-код