Сегодня сложно себе представить любой сайт в интернете который бы не пользовался кнопками поделится в разных социальных сетях. Ведь сейчас социальные сети очень стремительно развиваются и трафик на сайт с них может иногда при правильном подходе превышать трафик с поисковых систем в несколько раз.
В связи с этим хочу сегодня и поговорить немного о том как добавить кнопки социальных сетей поделится на свой сайт. Что здесь сложного скажете вы, ведь сейчас есть множество сервисов которые предлагают быстро установить свой код на любой сайт который позволит делится вашей страничкой в популярных социальных сетях.
Но в данном методе есть и некоторые недостатки через которые я и не рекомендую использовать сторонние сервисы для добавления социальных сетей на свой веб ресурс, и при создании сайтов я так же всегда стараюсь избегать по мере возможного подключать сторонние скрипты на сайт . Как всем уже известно бесплатный сыр только в мышеловке и при том что даже там он не совсем бесплатен и мышь за него платит своей жизнью.
Тоже самое и с кнопками соц сетей от сторонних сервисов, бесплатно никто работать не будет и в таком громком заявлении как "кнопки социальных сетей бесплатно" кроется плата которую вы все равно заплатите, к примеру: добавляя сторонний сервис на свой сайт вы добавляете лишнюю внешнюю ссылку на их веб ресурс, большинство данных сервисов используют данный код в своих скрытых рекламных целях, собирают информацию о ваших пользователях, и многое другое, а иногда даже бывает что добавляя такой код вы можете сами того не понимая добавить и вирус на сайт.
Ну и я уже не говорю о том что вы полностью зависите от их сервиса, и если с ихним сервером что то случилось это отобразится на скорости загрузки и вашего сайта тоже, ведь ваш сайт будет пытаться подключится к их сервису тем самым будет увеличивать время открытия страницы вашего сайта, так же при оптимизации и продвижении вашего интернет ресурса вы наверняка захотите увеличить показатели google pagespeed но в связи с невозможностью внести изменения в сторонний сервис который вы установили в качестве кнопок поделится вы не сможете добиться желаемого вам результата.
Ок, я думаю вы уже поняли почему я рекомендую как можно меньше добавлять сторонних сервисов на свой сайт, теперь давайте же мы с вами рассмотрим как же добавить кнопки поделится на свой сайт без использования всяких там сторонних сервисов, тем более что это не так уже и сложно, и я вам сегодня предоставлю готовый скрипт социальных кнопок на сайт, который вы без труда сможете себе установить, и не зависеть ни от кого.
И так давайте же приступим к реализации и установки кнопок поделится на свой сайт. Все что нам с Вами потребуется это немного стилей добавить, немного HTML кода и подключить файл javascript с минимум настройками.
Первое это HTML код самих социальных кнопок которые вам потребуется добавить в нужное вам место сайта:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<div id="share"> <div class="like">Понравилось? Поделитесь с друзьями!</div> <div class="social" data-url="<?php echo 'https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?>" data-title="Стильные кнопки поделится в соц сетях без использования сторонних сервисов"> <a class="push facebook" data-id="fb"><i class="fa fa-facebook"></i> Facebook</a> <a class="push vkontakte" data-id="vk"><i class="fa fa-vk"></i> Вконтакте</a> <a class="push ok" data-id="ok"><i class="fa fa-odnoklassniki"></i> OK</a> <a class="push twitter" data-id="tw"><i class="fa fa-twitter"></i> Twitter</a> <a class="push google" data-id="gp"><i class="fa fa-google-plus"></i> Google+</a> <a class="push pinterest" data-id="pin"><i class="fa fa-pinterest"></i> Pinterest </a> <a class="push viber" data-id="viber"><i class="fa fa-phone"></i> Viber </a> </div> </div> |
Как вы видите здесь ничего сложного нет, идет список ссылок на нужные вам соц сети, за исключением некоторых моментов. В коде присутствует такая строка как:
1 |
<?php echo 'https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?> |
Что это за строка? - это как раз ваша ссылка на страницу которой человек собирается поделится, и в зависимости от вашей смс на котором сделан сайт это значение можем менятся, к примеру вышеуказанная строка выведет ссылку на страницу на которой вы находитесь методом PHP , соответственно ваша страница должна или поддерживать PHP код или быть файлом php, если же у вас WordPress то можно ее заменить на:
1 |
<?php the_permalink() ?> |
если же у вас другой тип сайта то ссылку нужно вывести в соответствии с вашей смс. Следующее значение это название страницы TITLE которой вы собираетесь делится:
1 |
data-title="Стильные кнопки поделится всоц сетях без испольбзования сторонних сервисов"> |
Если это просто какой то одностраничный сайт то вы можете непосредственно как и в коде выше прописать свой тайтл, эсли же у вас сайт на одной из популярных смс где множество страниц и каждая генерирует свой заголовок, то вам нужно опять же обратится к документации вашей смс, для WordPress к примеру это будет код:
1 |
<?php the_title(); ?> |
Так же в коде для вывода иконок социальных сетей используется иконки Font Awesome, и вы можете их так же применять у себя, но предварительно их нужно подключить на свой сайт.
Как добавить иконки Font Awesome на свой сайт вы можете ознакомится в следующей статье. В случае если вы не хотите использовать данный иконочный шрифт, вам нужно будет прописать картинки соц сетей на свое усмотрение, и внести некие изменения в код CSS.
Следующим шагом будет добавление кода CSS для кнопок поделится:
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 |
/* Стили для оформления кнопок поделиться */ #share { width:100%; margin: 0 auto; background:#fff; text-align:center; } .like { font-size: 16px; font-weight: 700; padding-top: 10px; margin-bottom: 10px; } .push { display: inline-block; min-width: 100px; margin: 5px 2px 10px 2px; font-size: 15px; text-align: center; color: #fff; cursor: pointer; padding: 5px; } .facebook {background-color:#3b5998;} .facebook:hover {background-color:#2d4373;color:#fff;text-decoration: none;} .google {background-color:#dd4b39;} .google:hover {background-color:#c23321;color:#fff;text-decoration: none;} .pinterest {background-color:#bd081c;} .pinterest:hover {background-color:#881f12;color:#fff;text-decoration: none;} .viber {background-color:#665cac;} .viber:hover {background-color:#881f12;color:#fff;text-decoration: none;} .twitter {background-color:#55acee;} .twitter:hover {background-color:#2795e9;color:#fff;text-decoration: none;} .vkontakte {background-color:#587ea3;} .vkontakte:hover {background-color:#466482;color:#fff;text-decoration: none;} .ok {background-color:#ee8208;} .ok:hover {background-color: #a05f20; color:#fff;text-decoration: none;} /* Стили для оформления кнопок поделиться */ |
Думаю описывать сам код не имеет смысла, а вот добавить на свой сайт вы можете двумя способами, первый это добавить вышеуказанный код CSS в свой основной файл стилей и второй это создать отдельный файл к примеру share-style.css и добавить код в него, после подключить скрипт добавим строку между <head></head> к примеру так:
1 |
<link href="../share-sicial-a/share-style.css" rel="stylesheet"> |
При этом обязательно проверяйте пути к файлу css который подключаете.
Ну и последнее это сайт файл javascript, скачать его можно под данной статьей, ну и подключить его на свой сайт , так же как и мы поступали со стилями при подключении, между <head></head> добавляем:
1 |
<script src="../share-sicial-a/share.js"></script> |
Ну и опять же, проверяйте правильность путей к данному файлу при подключении. Вот собственно и все, таким образом мы подключили скрипт кнопок поделится для своего сайта и при этом не использовали ни одного стороннего сервиса для этого.
Пользуйтесь на здоровье, будут вопросы задавайте в комментариях, нужно будет добавить какую то другую кнопку поделится которой нету в скрипте, так же милости просим в комментарий к статье.
PS: Если вам нужен готовый интернет магазин но нет времени и желания заниматься его разработкой, вы можете купить уже готовый сайт интернет магазина недорого в нашей веб студии.
72 комментария
Здравствуйте устанавливаю кнопки соц сетей в comments.tpl полностью исчезает нижнее меню.Почему так?Подскажите
Ответ прост. Ошибка PHP кода.
Вы не верно не в том месте строке устанавливаете код.
Спасибо. Отличный вариант. А каким образом добавить к этому списку кнопку Телеграмм?
Это в список ссылок соц кнопок добавить:
А это добавить в JS в файл share.js:
А в стили что добавить?
Код CSS стилей указан выше в статье, или Вы о другом чем то?
Класс спасибо -))
Буду внедрять себе на сайт =)
Только у меня не работало в вк подстановка Title.
Изменил тут параметр description на title и все стало ок.
this.popupCenter(‘https://vk.com/share.php?url=’ + url + ‘&title=’ + title +
Возможно ВКонтакте что-то изменил у себя. На момент написания данной статьи всё работало отлично. Рад что у вас всё получилось.
Ув. Василий. Все сделала как Вы и написали в примере выше. Кнопочки появились у меня на сайте, но они не активные почему то. Не срабатывает ни одна кнопка. Сайт на Dle 12.1 Помогите пожалуйста разобраться. Спасибо
Помочь то можно если видеть сам сайт, чтоб понять где вы допустили ошибку, но в первую очередь смотрите в сторону консоли, возможно у вас какой то конфликт скриптов, ето при условии что все верно зделали.
Здравствуйте, большое спасибо, очень пригодилось. Напишите, пожалуйста, как добавить WhatsApp.
По возможности и свободном времени напишу там 5 мин работы.
Всё ещё ждём ват сап!
В стили это:
В JS это:
В index.php это:
Пример здеся…
Спасибо!
А как вывести еще «Скопировать ссылку»
Статья про кнопки поделится в соц сетях
Но можете за пример взять к примеру этот код здесь
Добрый день. А можно как-то указать нужное изображение? Чтобы не первое цеплялось и другие в подряд, а нужное. Например, основное фото в интернет-магазине.
Укажите для сайта или страницы как то так и будет вам счастье.
Разумеется со своими данными…
Дмитрий у вас получилось поставить коды и все кнопочки работают? сайт на каком двиге у вас? У меня на дле и не срабатывают почему то.
Скорей всего у вас не срабатівает потому что у вас дле а в нем шаблонизатор смарту разширение tpl собственно код php не обрабатівается. Там немного больше нужно чем скопировать и вставить.
Скажите, плиз, все сделала, работает, но валидатор ругается, что в ссыле нет нужного элемента hrefю Как быть, что подскажете?
Element a is missing required attribute href.
Валидатор ругается какой именно? В гугле вроде проблем нет уточните. а так же ссылку на пациента скиньте.
Валидатор validator.w3.org я им всегда пользуюсь))
Он у Вас ругается на отсутствия href ссылки.
Я на такие ошибки валидатора не обращаю никогда внимания.
Но, по вашему вопросу.
Или убираем из кода все
Или переписываем все ссылки из тега а на любой другой тег, типу p,span,div или что то подобное, но тогда вам придется переписівать и все стили и сам js код.
Спасибо за ответ!!! Ок, можно забить на валидвтор)) А ссылочный вес при этом не утекает, если везде убрать nofollow? Переделывать теги…Жесть .. Не хочется))И потом, я в java script полный ноль
Так Вы же передаете свою ссылку, ну и внешние это только ссылки сервисов, так что здесь нечего волноваться. Не потеряете вес.
Спасибо! Так и поступим
Спасибо за скрипт. Не могу найти как шаринг в Инстаграм прикрутить, подскажете?
К сожалению…
В инстаграм нет такого …
Здраствуйте! А как убрать G+ в кнопке(сервис же уже не работает) и какую ссылку прописать в кнопку от Гугла в js файл?
Просто вырежьте ее из кода.
Кнопку убрать не проблема , просто вырезать ее из кода а именно:
Ну и не обязательно но по желанию это из js:
Добрый день.
Инстаграм можно сделать?
Нет.
Вчера знакомые ребята поделились сервисом для проверки кеширования на сайте. Проверил.
Удивился наличию вот такого на сайте:
https://mc.yandex.ru/metrika/advert.gif
60 minutes Type: Cache-Control
https://mc.yandex.ru/metrika/watch.js
60 minutes Type: Cache-Control
Что? Да я не использую все эти Гсервисы от Яндекса сказал Я. Нет метрики, нет вебмастера.
А откуда же это взялось. Немного подумав понял, что это кнопки поделиться от Яндекса.
Вот так я попал на эту очень полезную страницу.
Скрипт установил, вроде всё работает. Спасибо огромное за это чудо!
Пара вопросов всё таки возникло:
1. У меня для яшашара были настроены следующие параметры:
data-description= и data-image=
Надо ли передавать картинку таким образом и как применить к нашему скрипту?
2. Добавил Телеграм
При попытке поделиться выскакивает это: https://imageup.ru/img190/3499159/2724_f_483_dyni-optom-so-sklada-v-moskve.jpg
Как лечить?
По первому вопросу не совсем понял что требуется.
По второму, Вам нужно правильно JS файл на строить а именно для телеграм, я выше в комментариях писал инструкцию для него…
Василий, спасибо за оперативный ответ!
По первому вопросу как бы сам вроде как разобрался. Я так понимаю картинка и описание передаётся через og:image и og:title автоматом. Я решил передавать в data-title= данные из og:description, поэтому на сайты соцсетей (ВК и мейл.ру например) передаётся и заголовок новости, и картинка, и описание.
По второму вопросу — это видимо норма, так как то же самое происходит при переходе с кнопки от Яша-шара.
Всё работает, всё отлично!
Кстати, я себе ещё добавил кнопку Мой мир (mail.ru).
Ок, я рад что у Вас все получилось.
Для смарт шаблонов ссылка делается так:
Здравствуйте! Очень понравилось Ваше решение. Подскажите пожалуйста, какую функцию нужно прописать для Joomla? Если для Word Press используется:
То что нужно прописать для Joomla? Весь интернет перерыл и ничего… Не знаю, имеет ли это значение, но я использую компонент ZOO.
Очень частый вопрос, здесь или искать решении в сети или индивидуальная доработка на платной основе.
Огромное спасибо. Установила на вордпрессе. Все отлично работает. Смотрится шикарно)
Рад что вам понравилось…
Интересная статья.
Вопрос.
Соцсети время от времени API зачем-то меняют. Если пользуешься «сторонними» кнопками (со всеми вытекающими минусами), то часть проблем решается на стороне сервиса, вторая часть решается перестановкой готового кода с этого же сервиса.
Если прикрутил кнопки сам, то при телодвижениях соцсети что-то отлетает и придется допиливать код, что не просто, если не сильно профи и все равно требует времени на разобраться.
Кнопки прикрутить хочу, но сторонние дюже тормозят, а самопальные могут отлетать. Или я что не так понял?
Менять то они меняют, но что касается шаринга то это крайне редко, данные кнопки уже работают много лет без изменений, по этому ставьте смело, все будет тип топ
Здравствуйте. Делаю сайт на программе-конструкторе Nicepade, по вашим примерам добавил коды иконок соцсетей, при заливке файлов на хостинг иконки благополучно отображаются, но они не активны, при клике по ним ничего не происходит. Как это исправить?
Подобный вопрос уже звучал выше, но из ответа ничего не понял. Можно как-то объяснить поподробнее, «для новичков в html-разметке»?
Уважаемые пользователи, поймите я не Ванга, предвидеть все не могу, и будущее не вижу.
Если Вы задаете вопрос на которых хотите получить ответ вы хотя бы как минимум указывайте ссылку на свой сайт, а как максимум описывайте все детально.
Спасибо.
К предыдущему посту…
Код установлен на тестовой странице https://mygratiss.ru/Nicepade/index.php
Открывать лучше на ПК, под мобильные устройства пока не адаптирован. Хостинг jino, php подключен.
Похоже что у вас не подключен jquery
Добавьте это куда то перед
Ошибка: https://prnt.sc/roab97
К сожалению данный метод не помог. Пробовал также установить файл jquery на сайт и подключить его, но результат тот же, иконки не активны.
Добавьте сразу после:
это:
Делаю все как вы советуете, но ничего не получается, или руки у меня «кривые». Отложу это дело до «лучших времен». Спасибо за советы.
Проблема решилась.
Теги подключения share.js вставил не между , как у вас описано, а перед и все сразу заработало, кнопки стали активными.
Проблема решилась.
Теги подключения share.js вставил не между head — /head , как у вас описано, а перед закрывающим тегом /body и все сразу заработало, кнопки стали активными.
Рад что у Вас все получилось.
Здравствуйте Василий. Очень понравилась ваша статья. Выложите пожалуйста код для вставки в js кнопки «Мой мир». Заранее благодарен.
JS:
HTML:
CSS:
Хорошая статья Настроил и все работает отлично
Рад что статья Вам пригодилась. Хорошего Вам дня!
Здравствуйте, Василий.
Кнопки для: Mail.ru , WhatsApp , Telegram почему-то работают только если сайт, на котором они установлены открыт в браузере на компьютере, на смартфоне они не активные, в чем может быть причина?
На смартфоне установлены приложения WhatsApp и Telegram, но при клике по этим кнопкам ничего не происходит.
Проблема с кнопками для: Mail.ru , WhatsApp , Telegram разрешилась очисткой кеша браузера.
Дополнительный вопрос по кнопке для Viber, она, как я понял, срабатывает если на компьютере или смартфоне установлена программа Viber? — потому что при клике по кнопке открывается пустое окно. То есть без установленной программы Viber эта кнопка бесполезна?
Да, чтоб вайбер сработал он должен быть установлен у клиента.
Найс вы рофлеры) чтобы глянуть исходники нужно поделиться, дисплей нон сила? и да можно и так исходники у примера глянуть
Странный Вы человек, на написание и тестирование данного скрипта было потрачено мое время, на ответы в комментариях тоже, а Вы возмущаетесь из за пары потраченных секунд чтоб нажать на кнопку поделится….
И да Вы без проблем можете посмотреть исходник в демо этого никто не скрывает, скрыта только кнопка которая позволяет скачать готовый скрипт…
Но если Вас что то не устраивает тогда проходим мимо, Вы на написание своих возмущений потратили больше времени…
потратил целую минутку
но мог и бы лучше защитить исходники, раз так написал
А зачем их защищать то? От кого? От Вас? :):):):)
Я же не продаю его, он в свободном доступе
Для обычного пользователя которому скрипт пригодился несложно поблагодарить кликом поделится… И судя по комментам благодарных пользователей большое количество.
А такие как Вы, если заходят получить скрипт и которые принципиально не хотят это делать найдут способ скачать, даже если и время потратят свое… Как таких людей назвать не знаю, но Вам я так понимаю просто сейчас скучно и нечем заняться, вот Вы и решили подискутировать, займитесь чем то полезным…
К примеру напишите свой скрипт.
Хорошего Вам дня! И не занимайтесь ерундой, я еще раз повторюсь не нравится проходим мимо…
Здравствуйте!
Случайно наткунался на ваш скрипт и он мне очень понравился, большое вам спасибо. Только заметил проблему. Не всегда подцепляются заголовки…То есть описание, то его нету, то есть картинка, то её нету…
Уж не знаю с чем это связано, с моей криворукостью спецификой сайта, хостингом или чем-то ещё, но у меня возник вопрос, можно ли обойтись без дата параметров и информацию для переменных брать напрямую из заголовков? Либо сделать проверку, что если есть заголовки берём из них, если нет, то из датаэлементов. Просто не знаю, как у других, но у меня всё как-то хаотично, это не критично, но напрягает=)
Всё разобрался, была виной всё таки моя криворукость)) Хотя все равно почему-то картинка к твиттеру не цепляется, везде норм, а твиттер отказывается видеть заголовок…ну да ладно, это уже вопросы не к скрипту))
Очень рад что статья оказалась Вам полезной!
Установите микроразметку Open Graph и будет Вам счастье!
Доброго времени суток, а Linked In есть возможность добавить? Заранее спасибо