Скрипт для 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. 1

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

  2. 2
    Yury

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

  3. 3

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

    • 4

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

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

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

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

  4. 5
    Servest

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

  5. 6
    Андрей

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