Скрипт для WordPress “Добавить в закладки”
Поговорим о кнопках добавления ссылки на пост в социальные закладки, тех, которые мы обычно наблюдаем в начале или в конце каждого поста на многих блогах.
На этом блоге средства социализации постов были поочередно реализованы 3-мя разными способами: сначала я вставлял коды ссылок на социалки вручную, редактируя шаблон WP, затем поставил плагин, делающий то же самое, и, наконец, остановился на 3-м способе, когда эти ссылки выводятся полностью с помощью технологии JavaScript.
Хочу отметить, что первые 2 варианта совсем не нравились мне. Все потому, что в результате под каждым постом блога я получал ужасающий кусок хтмл-кода (с инлайновым ява-скриптом) внушающего размера. Чтобы увидеть ЭТО, посмотрите в исходный код, например, такой страницы. Поисковики наверняка пугаются, видя сие безобразие.
Помимо размера кода не прельщало и то, что в результате появлялось множество лишних исходящих ссылок. Сами понимаете, что абсолютно “левый” тег <noindex>
, равно как и атрибут rel="nofollow"
– не панацея.
Мне нужно было простое решение, так сказать, два в одном.
Вадим Ласто в очередной раз удивил меня, когда я обнаружил, что на его блоге появились ссылки добавления в социальные закладки и реализованы они с помощью небольшого ява-скрипта. Это и было то, что нужно мне.
Полагая, что данное решение придется по душе не только мне, расскажу, как данный скрипт адаптировать под популярный движок WordPress, на котором работает большинство stand-alone блогов (автор скрипта дал на это добро).
Процесс установки довольно прост, рассмотрим его последовательно:
- Необходимо в файл 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; } ?>
- Сохранить иконки социалок в какую-либо папку.
- В вышеуказанном коде заменить путь /wp-content/themes/default/social/ на путь к Вашей папке с иконками.
- Добавить в свою WordPress-тему в то место, где желаете выводить ссылки на социалки, такой код:
<?php social(); ?>
- Готово. То, что получается в результате, Вы можете увидеть, посмотрев код данной страницы.
Для удобства Вы можете скачать готовый архив, содержащий и файл functions.php, и иконки социалок.
В результате мы получили значительно уменьшенный код и решили задачу с излишними исходящими ссылками. Добавление в скрипт новых ссылок на социальные сервисы, думаю, труда не составит, все делается по аналогии.
* * *
Услуга, предлагаемая заводом-производителем «Росблок» на сайте rosblok.ru – доставка пенобетонных блоков разных марок (теплоизоляционный, конструкционный, конструкционно-теплоизоляционный), а также сопутствующих товаров.
Комментарии (46)
Интересное решение, надо будет попробовать…В любом случае спасибо).
[quote post=”109″]И еще, если эту запись добавляешь последней в массиве, то запятую в конце не надо.[/quote]
Ошибки всё равно по идее не должно быть
Подскажите пожалуйста куда добавить
Уже все места перепробовал, подскажите пожалуйста.
Саня возмите “Одну кнопку” – http://odnaknopka.ru/get/. И напрямую вставьте в шаблон своего блога.
Мне как-то более приятен вариант с “одной кнопкой!. Но хотя кому как, кто и поизвращаться любит :))
SEO, а вот я не сторонник сервисов, которые требуют загружать код с их сайта, как это сделано у “Одной кнопки” (в общем-то сюда можно отнести и любую систему контекстной рекламы). Стоит их серверу стать недоступным (от этого никто не застрахован), как страницы блога станут грузиться с ощутимой задержкой, что не придется по душе посетителям блога.
[quote comment=”3218″]SEO, а вот я не сторонник сервисов, которые требуют загружать код с их сайта, как это сделано у “Одной кнопки” [/quote]
Dimox, аналогично. Собственно полностью разделяю мысли в посте (эмм, это не спам комментов).
Предлагаю посмотреть мой вариант скрипта на javascript, подключается чрезвычайно просто на любые сайты-блоги-cms:
http://web-mastery.info/scripts/javascript-83.html
Положительный момент – минимум кода на странице(код сервисов реально разворачивается на клиентской машине), простое добавление/удаление и, главное, скрипт лежит на своем хосте.
sabotage, да, это тоже хорошее решение.
Прошу прощения за ламерский вопрос, но вот такая штука получается.
У меня в теме посты выводятся, как я понимаю, вот таким кодом:
Если тупо вставить вызов функции после the_post(); то почему-то блок иконок выводится перед собственно постом, а не после, как вроде бы должно быть. Совершенно не понимаю, почему такое =(
Как исправить? Заранее спасибо. И в любом случае огромное спасибо за сам код.
15g, все дело в том, что текст самого поста выводит код
the_content()
(илиthe_excerpt()
). Вставляйте функцию закладок после него, и все будет гуд ;)Упс. Спасибо.
Надо было не разбираться в коде, оказывается, а курить вопрдпрессовский кодекс =))
Кодекс вообще штука рулезная, жаль на английском, мне например сложно немного, чуть отвлекся – потерял нить :(
я так понял, что у тебя счас немного измененный скрипт стоит?
можешь его выложить?
Dux, возможно, однажды выложу его.
К сожалению, так не получается. У вас в коде выводится всего одна короткая строчка ()
А у меня весь скрипт целиком.
(
Сергей, пост написан почти года назад. Скрипт за это время изменился. Может быть однажды напишу о новом.
Да, спасибо. Скрипт от Ласто работает практически везде, не только на WordPress. Кстати недавно написал пост о том, как его встоить в любой динамический сайт. Надеюсь будет полезно…
Добрый день.
Воспользовался материалом данного поста, установил иконки для регистрации в социалках. Сейчас обследовал Ваш блог , и не нашел ничего подобного, в связи с чем возник вопрос: насколько наличие этих кнопок оправдывает себя, есть ли какой нибудь пусть самый минимальный эффект от этого сейчас? или тема уже себя исчерпала и смысла городить огород уже нет?
Потому что теперь используется усовершенствованный скрипт.
Если на блоге публикуется интересный многим читателям материал, то, конечно, оправдывает.
Помучался я с выводом иконок. Оказалось дело было в .htaccess. Проверил скрипт “летает” по сравнению с “тормозящей” “одной кнопкой”. Спасибо :)
Спасибо за скрипт, как раз хочу реализовать меню закладок на своем сайте!