Друзья, привет-привет!
Сегодня создадим простой плагин для CMS WordPress. Будет это не стрёмная мифическая всевнушка, а простенький пак из кнопок «поделиться» для разных соцсетей и смежных сервисов. Думаете, никому не нужно? Не скажите, я то пользуюсь.
Надеюсь, смогу доступно донести информацию не только для специалистов в PHP, но и для веб-мастеров, которые захотят внедрить на свой сайт небольшую, но полезную фичу.
Вообще, программирование под CMS совсем не то же самое, что написание скрипта на заказ. Система управления контентом предоставляет богатую функциональность, но при этом диктует «правила общения». Для примера, у многих веб-программистов есть свой набор библиотек для разработки. Подключение, допустим, класса для работы с базами данных — моветон. CMS содержит эти инструменты, и глупо их не использовать. Программист, которому в будущем потребуется дополнять код, будет очень «благодарен» за нежданную возможность покопаться в чужом классе.
Дабы не заморачиваться особенностями «шаринга» разных сервисов, сделаем оболочку на основе предоставленного Яндексом блока «Поделиться». Конечно же, можно добавить три строки «шаринга» сразу в файлы темы, но плагин имеет несколько преимуществ:
- не придётся вносить изменения в файлы index.php, single.php, page.php и прочих, если автор определил самостоятельный вывод каждого типа страницы;
- при обновлении или изменении темы не придётся править файлы;
- если захотите временно или навсегда скрыть кнопки, достаточно деактивировать/удалить плагин.
Простейшая реализация плагина
Если не хотите заморачиваться, вот простейшая реализация. В результате, перед каждым постом будет выводиться блок кнопок.
Создайте файл с именем YandexShareLite.php или любым другим и скопируйте в него код. После этого загрузите данный файл по фтп в каталог <корень_сайта>/wp-content/plugins/, зайдите в админку, в меню выбираете Плагины → Установленные, и жмёте ссылку Активировать для YandexShareLite.
<?php
/*
Plugin Name: YandexShareLite
Description: Добавление кнопок «поделиться» разных социальных сетей
*/
// подключим фильтр, срабатывающий перед выводом содержимого страницы (поста)
add_filter( 'the_content', 'yandexshare_run' );
// функция добавляет кнопки расшаривания перед постом
function yandexshare_run($content) {
// код со страницы https://tech.yandex.ru/share/
$data = '
<script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script>
<script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script>
<div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,gplus,twitter"></div>
';
// возвращаем новое содержимое — код от Яндекса + старое содержимое
return $data . $content;
}
Как это работает? С помощью add_filter() цепляется обработчик хука the_content. Обработчиком будет наша функция — yandexshare_run(). В качестве параметров передаётся содержимое поста. Таким образом, с ним можно делать вообще всё, что захочется. В данном случае, возвращаем код для генерации кнопок и старое содержимое.
WordPress славится своей расширяемостью. Это обеспечивает мехнанизм хуков, которые придуманы едва ли не на все возможные случаи. Полный список состоит из более, чем 1700, для версии движка 4.1, штук. Для написания плагинов знать всё не нужно. Официальной документации, обычно, хватает.
Продвинутая реализация плагина
Lite-версия получилась элементарной, верно? Не успели начать, а уже всё оказалось готово. Кто-то даже загорелся, что так же просто можно добавить код Google Adsense. Не буду разочаровывать — конечно же можно!
Но столь простых плагинов обычно не делают. Пользователю предоставляется возможность управлять настройками, которые нужно сохранить, применить и очистить при удалении плагина. Продвинутая версия умеет:
- выводить кнопки до и после поста;
- предоставлять интерфейс настройки размера кнопок (большие или маленькие) и выбора сервисов, интересных веб-мастеру;
- добавлять удобную ссылку «Настройка» в списке плагинов, чтобы хозяин блога мог сразу перейти к управлению внешним видом вывода;
- подчищать за собой данные при удалении.
<?php
/*
Plugin Name: YandexShare
Plugin URI: https://a-panov.ru/plagin-dlya-wordpress/
Description: Добавление кнопок «поделиться» разных социальных сетей
Version: 1.0
Author: Andi Panov <a@a-panov.ru>
Author URI: https://a-panov.ru/
License: GPLv2
*/
// подключим фильтр, срабатывающий перед выводом содержимого страницы (поста)
add_filter( 'the_content', 'yandexshare_run' );
// функция добавляет кнопки расшаривания перед и после поста
function yandexshare_run($content) {
// получить сервисы для иконок
$sharebtn = get_option('yandexshare_bnts');
// если ни одного сервиса не выбрано, будем использовать только основные
if ( !$sharebtn ) $sharebtn = 'vkontakte,odnoklassniki,facebook,twitter,gplus';
// показывать ли большие иконки
$bigbtn = get_option('yandexshare_bigbtn');
// непосредственно код Яндекс Share. Детали — https://tech.yandex.ru/share/
// необходимые скрипты
$script = '
<script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script>
<script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script>';
// здесь учитываем желаемые иконки и их размер
$data = '<div class="ya-share2" data-services="' . $sharebtn . '"' . ($bigbtn ? '' : ' data-size="s"') . '></div>';
// вывод данных: подключение скриптов единожды, блок кнопок до статьи,
// статья и ещё один аналогичный блок кнопок
return $script . $data . $content . $data;
}
// добавим пункт в основное админ-меню WP
add_action('admin_menu', 'yandexshare_admin_menu');
function yandexshare_admin_menu(){
add_options_page('YandexShare', 'Настройки YandexShare', 'manage_options', 'yandexshare-options', 'yandexshare_admin_manage');
}
// «морда» для управления настройками
function yandexshare_admin_manage() {
// какие иконки соцсетей доступны
$share_bnt_list = array(
'vkontakte' => 'ВКонтакте',
'facebook' => 'Facebook',
'odnoklassniki' => 'Одноклассники',
'moimir' => 'МойМир',
'gplus' => 'Google+',
'twitter' => 'Twitter',
'blogger' => 'Blogger',
'linkedin' => 'LinkedIn',
'lj' => 'Livejournal',
'viber' => 'Viber',
'whatsapp' => 'WhatsApp',
);
// POST-параметры передаются из нашей формы настроек
if (isset($_POST['yandexshare_bigbtn'])) {
// большая кнопка
$bigbtn = empty($_POST['yandexshare_bigbtn']) ? 0 : 1;
// если установлено — добавляем в опции, иначе — удаляем,
// т. к. значение по умолчанию и так ноль
if ($bigbtn) update_option('yandexshare_bigbtn', 1);
else delete_option('yandexshare_bigbtn');
// если массив требуемых кнопок установлен...
if (isset($_POST['yandexshare_bnts']) && is_array($_POST['yandexshare_bnts'])) {
// приводим его к ожидаемому формату
$sharebtn = $_POST['yandexshare_bnts']
? implode(',', $_POST['yandexshare_bnts'])
: '';
}
// если сняты все отметки...
if (empty($sharebtn)) {
// удаляемся из настроек WP
delete_option('yandexshare_bnts');
// и оставляем значения по умолчанию
$sharebtn = 'vkontakte,odnoklassniki,facebook,twitter,gplus';
} else {
// иначе — установим требуемые кнопки
update_option('yandexshare_bnts', $sharebtn);
}
$success = true;
} else {
// получить содержимое наших опций
$bigbtn = get_option('yandexshare_bigbtn');
$sharebtn = get_option('yandexshare_bnts');
// если ни одного сервиса не выбрано — выводим основные;
// для деактивации плагина его нужно отключить!
if ( !$sharebtn ) $sharebtn = 'vkontakte,odnoklassniki,facebook,twitter,gplus';
}
$sharebtn_list = explode(',', $sharebtn);
?>
<div class="wrap">
<h2>Настройки YandexShare</h2>
<?php if ( isset($success) ) {
echo '<div class="updated"><p>Настройки успешно сохранены.</p></div>';
} ?>
<form action="" method="post">
<table class="table">
<tbody>
<tr>
<th>Использовать большие кнопки</th>
<td>
<select name="yandexshare_bigbtn">
<option value="0">Нет</option>
<option<?= $bigbtn ? ' selected="selected"' : '' ?> value="1">Да</option>
</select>
</td>
</tr>
<tr>
<th>Какие сервисы использовать</th>
<td>
<select name="yandexshare_bnts[]" size="<?= count($share_bnt_list) ?>" multiple>
<?php foreach ($share_bnt_list as $k => $v) {
echo '<option ' , in_array($k, $sharebtn_list) ? 'selected="selected" ' : '' , 'value="' . $k . '">' . $v . '</option>';
} ?>
</select>
<p class="description">Убирать/отмечать произвольные сервисы можно с зажатой клавишей Ctrl</p>
</td>
</tr>
</tbody>
</table>
<p class="submit"><input type="submit" value="Сохранить изменения" class="button button-primary"></p>
</form>
</div>
<?php
}
// добавим ссылку на Настройки в списке плагинов
add_filter('plugin_action_links', 'yandexshare_links', 10, 2);
// подцепим ссылку на Настройки
function yandexshare_links($links, $file) {
$plugin_file = basename(__FILE__);
if ($file == $plugin_file) {
$settings_link = '<a href="options-general.php?page=yandexshare-options">Настройки</a>';
array_unshift($links, $settings_link);
}
return $links;
}
// если плагин удаляется, подчистим все следы деятельности
register_uninstall_hook(__FILE__, 'yandexshare_remove');
// функция для удаления устанавливаемых плагином опций
function yandexshare_remove(){
delete_option('yandexshare_bnts');
delete_option('yandexshare_bigbtn');
}
Кода стало гораздо больше, но логически за всё отвечают 4 блока.
Вывод кнопок
Код немного усложнился по сравнению с лайт-версией. Во-первых, мы учитываем размер кнопок и соцсети, в которых можно поделиться. Данные получаем из сохранённых настроек, либо определяем значения по умолчанию. Во-вторых, учитываем, что js-скрипты нужно подключать один раз.
Настройка функций плагина
Подключение настроек выполняется в 2 этапа. Сначала подцепляем экшен admin_menu, который вызывает функцию yandexshare_admin_menu. Данная функция определяет страницу с настройками. Ссылка появится в меню Настройка, под названием Настройки YandexShare, видна будет только администратору — опция manage_options. Идентификатором меню будет строка yandexshare-options, а за отображение страницы наших настроек отвечает функция yandexshare_admin_manage().
Комментарии помогут разобраться, что происходит в функции. Если возникнут какие-то вопросы, пишите их в комментариях, попробуем найти ответ.
Добавление ссылки настройки в списоке плагинов
Реализуется с помощью фильтра plugin_action_links. Функция-обработчик — yandexshare_links() — принимает список установленных ссылок и имя файла-плагина. Нам нужно узнать вызов «своего» плагина и добавить туда новый элемент.
Удаление сохранённых данных
С помощью функции register_uninstall_hook() можно указать свою функцию, которая будет вызвана при удалении плагина. Хорошо, если плагин подчищает за собой, не оставляя ненужных данных. У нас определяются две настройки: yandexshare_bigbtn для вывода маленьких кнопок и yandexshare_bnts, содержащая список сервисов.
В общем-то, на этом всё. Надеюсь, данных знаний достаточно для понимания основ. В дальнейшем, останется ставить задачу, искать описание соответствующих хуков и добавлять фильтры/экшны для работы с ними.
Успехов!
днём интернета
шоколадкой для работы мозга
коробочкой ароматного чая для бодрости
продлением хостинга на +1 месяц
О, это гениально, я как раз собиралась подобрать себе такой плагин, но все какие-то большие и из-за них сайт медленно грузится.
Вовремя я к тебе заглянула!!!!
Елена, как удачно совпало!
Андрей, поздравляю вас с Днем защитника Отечества! Желаю крепкого здоровья и чистого неба над нашими головами!
Большое спасибо за нужную информацию. Я поставила маленький первый плагинчик у себя на сайте. Набралась храбрости и немного его изменила, как-то уяснив, что если поменять местами переменные $data и$content , то вначале будет выводиться содержимое статьи, а потом кнопки социальных сетей, что мне и нужно было, так перед статьей кнопки у меня уже стояли.
Софья, благодарю за поздравления!
Совершенно верно: если поменять эти переменные, то блок кнопок будет после статьи. Для определения внешнего вида нужно описа́ть класс в css-файле:
.ya-share2 {}
Андрей, спасибо за дополнение, а еще в конце плагина я поставила ?> или это по умолчанию ставится?
Софья, для php-файлов это совершенно необязательно. Даже рекомендации встречаются не делать этого.
Есть наблюдения, что если после закрывающей скобки PHP кода нет тегов HTML и присутствуют пробелы или другие, «незримые» символы — вместо выполнения кода PHP на экран может быть выведен сам листинг кода.
Это опасно, так как может быть использовано для взлома сайта.
Если после окончания кода PHP нет тегов HTML, то безопаснее закрывающую скобку ?> не ставить. Интерпретатор PHP сам поймет, что код закончился, а больше — никому ничего понимать не требуется. Отследить отсутствие «незримых» символов за скобкой ?> очень проблематично, особенно когда файлов с кодом PHP много.
Это один из случаев, когда нарушение академического синтаксиса языка повышает безопасность.
Денис, когда ты всё успеваешь? Уже и пых учишь)
Анди, если бы я успевал… В час по чайной ложке начал с пыхом знакомиться.
Принимаю пожертвования помощи от более опытных товарищей.
Не-е! Это не намек, ни в коем случае… Просто просьба
Лучше так: «приму в жертву программиста, способного реализовывать в кратчайшие сроки все задания, согласного работать за еду, которую добудет самостоятельно»
Денис, есть вещи второстепенной важности. ЯП — одна из них)
Не… Такой не подойдет. ЯП (добавлено позже: *я глубоко заблуждался, думая, что ЯП — это Яндекс Поиск, оказалось язык программирования, каюсь*) — один из них. Редко кто пишет понятно, а если и сделал такое чудо, то оно, как правило, морально устарело.
Чаще и больше всего затыков на старте у новичков встречается именно в тех вещах, которые для опытных кажутся само собой разумеющимися.
С помощью ЯП решать такие вопросы — это капец. А уж официальная документация, это то, что следует читать после того, как изучил язык полностью
Можно, конечно, расписаться в собственной несостоятельности, но это не совсем мой случай
Денис, тут смотря что и как рассматривать.
Если вещь, то «одна из». Если «Язык Программирования», то вроде как «один из», но Ада — всё же «она» (:
По «затыкам» — это не проблема, проблемище! Сейчас даже про многие вещи и не вспомню, но всяко, когда начинал, непонятно было почти всё. Поэтому статью «для новичков» написать можно, но нужно быть или самому новичком (как забороть проблему опишешь, но насколько это правильно — фиг знает), либо в процессе общения с начинающим получить эту информацию.
Официальные маны хороши, но для этого нужен опыт. Зная один язык при помощи мана можно сделать программу на другом (при схожей функциональности). Для новичков же вряд ли будет что понятно.
Денис, вот она, яркая иллюстрация твоих слов.
Извини, даже в голову не пришло, что могут подумать про Яндекс Поиск
Денис, если про конспекты скажешь — будет здорово! Может где-то даже сумею помочь.
Тема интереснейшая. Но, похоже, до уровня самостоятельного создания плагинов для WordPress дорасту не скоро. Так что, наверное, пока воспользуюсь готовым предложенным решением — от сторонних сервисов с кучей ненужных кнопок пора избавляться.
Константин, если что-то создавать не требуется, да и вообще, эти знания не пригодятся, продуктивнее забить мозг полезной информацией
К некоторым вещам порой подход нелогичный. Вроде бы и не надо, но интересно же! Если бы не постоянный дефицит времени, на развитие совершенно не нужных на первый взгляд навыков уходила бы уйма времени.
Константин, не верю, что Вы тратите время на развитие ненужных навыков!
Так о том и речь, что времени нет, потому и не трачу. Ответственность не позволяет. А так, если вспомнить школьные, студенческие годы и чуть позже, то сколько человеко-часов было потрачено на изучение не нужных, по-сути, языков, подумать страшно ) В школе, помимо немецкого, отучился на курсах эсперанто, самостоятельно, из любопытства, пытался освоить идиш — просто попался хороший самоучитель. Поступив институт, сразу же записался на курсы японского (до сих пор где-то лежат таблицы с катаканой и хираганой). Затем был шведский, но на нем я хотя бы несколько месяцев пообщался с носителями языка. Последний пункт — английский, который, опять же, по собственной воле, начал изучать со старшей дочерью. Внимание, вопрос: ну и нафига мне эти знания, если обладая ими на любительском уровне, я никогда не смогу сделать их источником своего дохода? То же можно сказать и о музыке: гитара пылится в углу за шторой, синтезатор — в коробке под кроватью. Ненужные навыки, получается — это все то, в чем не достигаешь профессионализма, т.е. не зарабатываешь на этом.
Константин, с другой стороны, если не пробовать что-то новое, как узнать, что занимаешься именно тем единственным, к чему наивысшая склонность?
Хорошо, Андрей, перефразирую вопрос: А как быть, если наивысшая склонность — к тому, в чем навсегда суждено остаться любителем? История знает примеры нищих деятелей искусства, того же Ван Гога, которому при жизни не удалось продать ни одной своей картины (по другим сведениям — всего одну). Я к тому веду, что занимаясь любимым делом, можно и семью заморить, и самому зубы на полку положить. В наш век большинству приходится заниматься не тем, что нравится, а тем, за что платят или возможно заплатят. Поэтому и осваивать приходится вовсе не то, к чему есть склонность. Ну да ладно, от темы статьи и так уже далеко ушли, не буду больше засорять страницу ))
Гений — 10% таланта и 90% труда (встречаются вариации 5%/95% или 1%/99%).
Хочется стать великим или хотя бы известным? Пашем, возможно даже, в ущерб семье. Но это личный выбор конкретного человека. В любом случае, жертвовать чем-то придётся.
Не исключается вариант работы на себя с целью узнать больше. Но какие у этого перспективы? Разве что выучить одно/другое/третье дабы понять, что нужно было четвертое/пятое/шестое.
Популярность Ван Гога не понимаю, объяснить можно разве что маркетингом: настоящего Искусства так мало, а людей, готовых платить за него деньги — очень много. Проводим пиар кампанию популяризации какого-нибудь художника с большим числом картин → Профит!
Александр Андреевич Иванов творил главный труд жизни 20 лет. Получилось действительно величественно, аж дух захватывает! Одна из немногих картин, которые запомнились после «Третьяковки».
К чему портянка выше? Развитие «в себя» мало продуктивно. Поэтому, что-то делаем для людей и даём им это, не обязательно бесплатно. А интернет здесь очень хороший помощник.
Нравится, допустим, вязание. А чем плохи вязаные чехлы для айфона? Уж всяко лучше палки для селфи. Вяжем, фотаем, выкладываем в соц-сети, собираем заинтересованных в группу, и далее, далее, далее…
Константин, да где же оффтоп-то? Простое обсуждение со взглядом с разных сторон. Очень ценно!
Спасибо!
Это очень интересно и удобно. Тем более, что мой блог на WordPress. Но с первого прочтения пока не все поняла. Явно программирование «моя тема» Вечером попытаюсь второй раз прочитать!
Жанна, если поможет и пригодится — буду просто рад
Мамма мия.. это все, что я могу прокомментировать по данной теме ) Интереснейшая функция для каждого вебмастера, на самом деле. Я в свое время полинета облазила в поисках хорошего блока шаринга )
Отношусь к числу тех, кто копаться не любит и предпочитает простой плагин ковырянию в кодах )
Надежда, спасибо на добром слове
Надюша, я вообще решила, что проще выйти замуж за программиста, чем самой осваивать эти бредни.
Тут же чертики ножки ломают). Не для хрупкой женской психики такие штуковины.
Да это же лайфхак!
Заюша, делись, что-как?
Как выйти замуж за программиста?
Это ж целая статья, Андрюш
Понял. Пошёл зарабатывать бобосы на сверхурочную оплату статьи)
Да не то понял…я же говорю, что эт статья. а не коммент, там чувства, там леший бродит) Короче там надо приложиться. Думаю, вполне формат твоего сайта — «Как выйти замуж на программиста: в чем выгода и преимущества».
Если совсем кратко: эт любовь).
Заюша, да всё то)
Любая качественная работа должна быть достойно оплачена!
Муж-программист: «треш, угар и содомия» или« профит, шоколадожизнь и счастье»
Это счастье, Андрюшенька. Это первый мужчина, который умнее меня. Не передать словами, как это важно
Заюша, главное, что тебе комфортно!
То есть, добро получено) Будет муза, можно писать о любви к программисту), его покорении и захвату в плен)
1. найти программиста;
2. подойти к нему;
3. взять его за… в общем, взять его
4. профит!
4. Пункт = достижимая цель)))
так профит есть или нет?
Скоро будет)
Замечательно!
Желаю успехов в монетизации)
Спасибо, мой мудрый друг.
Обожаю читать тебя.
Ты подарил удивительный вечер! Спасибо огромное-преогромное-преоггромноееееее.
P.S. Спасибо за теплый домик. Я тут как дома)) Ахаха.
P.S. Заметил, как женские эмоции набивают 200+сбп… ХАХАХа
Спасибо, Заюша
Мне в этом во век не разобраться.
Надежда, здравствуйте!
Ну что Вы, было бы желание ;)
Это Вам так кажется. Есть у меня блог на Вордпресс, но я могу писать только статьи, поэтому он у меня где-то так далеко болтается в интернете, что посещаемость нулевая, как впрочем и пузомерки.
Надежда, если Вам хочется «пузиков», давайте пообщаемся и сделаем
Просто реально не понимаю, чем тиц10+ может помочь
Ну например без ТИЦ 20 на биржу Блогун не берут, на Ротапjсте тоже никому не нужен. С другой стороны если бы была большая посещаемость то и пузики не нужны бы были. Мой скайп nadiyaevgen
Надежда, могу рассказать способ поднять тицку.
Но до сих пор не пойму: будет 20 тиц, возьмут в блогун, а что дальше? Без посещаемости профита не будет же.
Согласна. Это только какой нибудь залетный не опытный рекламодатель закажет рекламу, хотя на это рассчитывать не стоит. Но опять же таки денег на раскрутку не имею, врач на пенсии, да еще и вдова, а пенсия примерно 33 доллара. Вот поэтому и написала что статьи писать умею, а раскручивать блог ума не хватает. Вы уж извините, что-то я разоткровенничалась.
Надежда, «врач на пенсии» может на порядок больше, нежели просто незамысловатый я
Свой код, конечно, всегда удобней. Можно сделать все, что угодно. Но я предпочитаю готовые плагингы, иногда их только слегда дорабатываю
Всё верно. Для «своего кода» нужно вникнуть в тему и попытаться сделать что-то самостоятельно.
Иногда просто бывает некуда деваться, так что приходится вникать.
Не считаю, что все должны быть трындец проггерами)
Андрей, ну, вот что тут скажешь мастер ты. И всё.
А ваш диалог с Заюшей — просто супербонус к сложной (для гуманитариев) статье Кстати, идею о статье с лайфхаком «Как выйти замуж за программиста» очень поддерживаю! Думаю, с ней вы вырветесь в ТОП всех возможных систем. ;)
Светлана, благодарю. Вспомнился отрывок из к/ф Хоттабыч, правда, там не совсем про программиста:
— Да укради ты хотя бы чайник из интернета. Иначе ты не хакер, а придурок какой-то.
— Лааадно…
Хакер=программист=спец по железу, многие думают, если ты связан с компьютером значит должен все уметь и все знать! Так что давай, хакер чайничек новенький
Вот, хорошо, когда семья работает в одном направлении, но не скрою, что хорошо просто иметь рядом понимающего человека, пусть и работающего совершенно в иной сфере.
Поддерживаю идею со статьей из личного опыта — как выйти замуж за программиста.
Елена, значит, можно к тебе обратиться с «вопросами на тему»?
Я думала, уже Зоя пишет статью! Добро получено)))) Я же не про себя..
А зря!
Так у меня же муж не программист! Как я могу написать статью?
Елена, тыжкопирайтер!
Написать можешь самозабвенно
Не, это должен писать копирайтер, у которого муж программист. Вот Зоя — живой пример!
Вот так, ненавязчиво, перевела стрелки
Имею две специальности технические, и убеждён, что надо заниматься своим делом. Программисты пусть программируют, блогеры пусть пишут. Не получится ничего путного из симбиоза того и другого. Как все в стране — все знают обо всём понемногу…
Николай, это реалии текущего времени. Тенденция в сторону «знают немного обо всём». И фирмам приходится адаптироваться к такому.
У меня из за стилей шаблона выходит см. скрин
Как исправить? В CSS не силен особо.
Игорь, здравствуйте.
Код смотреть нужно, так не скажу.
Придется удалять (
Игорь, стили Вашего сайта каким-то образом вмешиваются. У Яндекса ничего особо специфичного нет:
span.b-share > span > a > span
Вмешиваются стили списка. Я проповал прописать свои в селекторе .ya-share2 {} но ничего не произошло. Некоторые из ваших комментаторов, я заметил, тоже его установили и у них аналогичная ошибка. Выходит у всех так.
Не зная точно, что именно влияет, можно только гадать по теме «чего ж им не хватает, заразам?»
У кого из комментаторов аналогичная ошибка?
Если напишите адрес, по которому можно посмотреть проблемный вывод, скажу, что поправить. Без кода можно много чего посоветовать, и всё же не угадать.
Софья, https://a-panov.ru/plagin-dlya-wordpress/#comment-12521
Можете и у меня посмотреть я пока не удалил, ссылку поставил в имя
В стили добавьте:
.pagepost .ya-share2 ul li {background-image:none }
PS: Софья заменила местами переменные, чтобы поменять местами вывод текста поста и кнопок.
Игорь, у меня нормально плагин работает. А маркеры у кнопок, это видимо от того, что кнопки списком выводятся.