Скрипт для WordPress “Добавить в закладки”
Поговорим о кнопках добавления ссылки на пост в социальные закладки, тех, которые мы обычно наблюдаем в начале или в конце каждого поста на многих блогах.
На этом блоге средства социализации постов были поочередно реализованы 3-мя разными способами: сначала я вставлял коды ссылок на социалки вручную, редактируя шаблон WP, затем поставил плагин, делающий то же самое, и, наконец, остановился на 3-м способе, когда эти ссылки выводятся полностью с помощью технологии JavaScript.
Хочу отметить, что первые 2 варианта совсем не нравились мне. Все потому, что в результате под каждым постом блога я получал ужасающий кусок хтмл-кода (с инлайновым ява-скриптом) внушающего размера. Чтобы увидеть ЭТО, посмотрите в исходный код, например, такой страницы. Поисковики наверняка пугаются, видя сие безобразие.
Помимо размера кода не прельщало и то, что в результате появлялось множество лишних исходящих ссылок. Сами понимаете, что абсолютно “левый” тег <noindex>, равно как и атрибут rel=”nofollow” - не панацея.
Мне нужно было простое решение, так сказать, два в одном.
Вадим Ласто в очередной раз удивил меня, когда я обнаружил, что на его блоге появились ссылки добавления в социальные закладки и реализованы они с помощью небольшого ява-скрипта. Это и было то, что нужно мне.
Полагая, что данное решение придется по душе не только мне, расскажу, как данный скрипт адаптировать под популярный движок WordPress, на котором работает большинство stand-alone блогов (автор скрипта дал на это добро).
Процесс установки довольно прост, рассмотрим его последовательно:
- Необходимо в файл functions.php Вашей WP-темы добавить нижеследующий код (если такого файла еще нет, то создать его):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50<?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 - доставка пенобетонных блоков разных марок (теплоизоляционный, конструкционный, конструкционно-теплоизоляционный), а также сопутствующих товаров.
Мне как-то более приятен вариант с “одной кнопкой!. Но хотя кому как, кто и поизвращаться любит :))
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, возможно, однажды выложу его.
К сожалению, так не получается. У вас в коде выводится всего одна короткая строчка (<script type=”text/javascript”>social()</script>)
А у меня весь скрипт целиком.
(<script>
function so(u,t) { … и до конца)
Не подскажете, как действительно достичь такого же результата, как у вас?
Сергей, пост написан почти года назад. Скрипт за это время изменился. Может быть однажды напишу о новом.
Да, спасибо. Скрипт от Ласто работает практически везде, не только на WordPress. Кстати недавно написал пост о том, как его встоить в любой динамический сайт. Надеюсь будет полезно…
Добрый день.
Воспользовался материалом данного поста, установил иконки для регистрации в социалках. Сейчас обследовал Ваш блог , и не нашел ничего подобного, в связи с чем возник вопрос: насколько наличие этих кнопок оправдывает себя, есть ли какой нибудь пусть самый минимальный эффект от этого сейчас? или тема уже себя исчерпала и смысла городить огород уже нет?
Потому что теперь используется усовершенствованный скрипт.
Если на блоге публикуется интересный многим читателям материал, то, конечно, оправдывает.
Помучался я с выводом иконок. Оказалось дело было в .htaccess. Проверил скрипт “летает” по сравнению с “тормозящей” “одной кнопкой”. Спасибо :)
Спасибо за скрипт, как раз хочу реализовать меню закладок на своем сайте!