Всё отлично!
Используем неплохой плагин для WordPress’а от Забродского Евгения (kowack): VKontakte API.
Плагин позволяет наряду с обычными комментариями вставлять и видеть комментарии VKontakte и Facebook.
Бонусом идёт также возможность добавлять кнопки соц.сетей – PlusOne button, Tweet button, Mail.ru+Ok.ru button, Ya.ru button.
Для Вконтакте имеется также возможность добавлять кнопки Мне нравится и Поделиться.
Настроить плагин также относительно легко – достаточно зарегистрировать свои приложения в VK и FB, ввести их ключи и админский ключ для плагина. Все ссылки даются тут же на соотв. страницах настройки плагина.
В общем плагин неплохой, можно сказать отличный, но нам хотелось бы его немного переделать.
Что не так?
Плагин выводит комменты VK,FB и WP блоками, если один блок виден, то другие скрыты, появление блока происходит с медленным эффектом, что немного имхо раздражает.
Кроме того, почему-то кнопки и надпись Comments: на английском языке, хотя наш блог на русском (может это из-за того что админку мы юзаем на английском? не знаю, не проверял).
Мы хотели бы, чтобы блоки были все сразу видны, то есть идёт первым VKontakte блок с комментариями, под ним – Facebook’чный блок комментариев, и уже под ним – стандартный WP (Word Press’овский блок с комментариями).
И надписи желательно переделать на русский насколько это возможно.
За работу!
Итак, заходим в папку wp-content/plugins/vkontakte-api.
Это родная папка плагина. Откроем файл js/callback.js и сразу видим блок Comments switcher с функциями showVK(),showFB(),showWP().
По названиям функций можно судить, что именно эти функции отвечают за появление/скрытие комментариев.
Нам достаточно закомментировать внутренность этих функций (но не сами функции конечно), чтобы комментарии были все видны. Наша задача выполнена? Да, почти, но по нажатию кнопок Vkontakte, Facebook и Site ничего не происходит.
Да, можно их убрать, но лучше наверное по их нажатию делать переход на соотв. блоки комментов.
Для этого внутри фуннкции добавляем простой переход на хэш-таг с соотв. ид.
Для VKontakte – #vkapi, для Facebook – #fb-comments (этого ид изнчально нету, ниже написано, как его добавить), для Site – #comments.
Таким образом весь модернизированный блок будет выглядеть так:
// Comments switcher function showVK(Tshow, Thide) { /* if (!Tshow && Tshow != 0) Tshow = 1000; if (!Thide && Thide != 0) Thide = 1500; jQuery("#vkapi").show(Tshow); jQuery(".fb-comments").hide(Thide); jQuery("#comments").hide(Thide); jQuery("#respond").hide(Thide); */ if(Tshow == 1) window.location.hash = 'vkapi'; } function showFB(Tshow, Thide) { /* if (!Tshow && Tshow != 0) Tshow = 1000; if (!Thide && Thide != 0) Thide = 1500; jQuery(".fb-comments").show(Tshow); jQuery("#vkapi").hide(Thide); jQuery("#comments").hide(Thide); jQuery("#respond").hide(Thide); */ window.location.hash = 'fb-comments'; } function showWP(Tshow, Thide) { /* if (!Tshow && Tshow != 0) Tshow = 1000; if (!Thide && Thide != 0) Thide = 1500; jQuery("#comments").show(Tshow); jQuery("#respond").show(Tshow); jQuery("#vkapi").hide(Thide); jQuery(".fb-comments").hide(Thide); */ window.location.hash = 'comments'; }
Для чего для контакта мы добавили условие if(Tshow == 1)?
Дело в том, что при заходе на страницу вызывается первый раз функция showVK() (если включен показ сначала комментов VK, а не FB). И тогда из-за исправленого скрипта происходил бы перескок сразу на комменты VK, что не есть хорошо, так как по умолчанию читатель ещё не читал статью/пост.
Если же у Вас включен первым показ комментов от Facebook, тогда это условие надо добавить в его блок. Для универсальности наверное его можно добавить сразу в оба блока.
Как говорилось выше, нет хэша #fb-comments. Чтобы его добавить, откроем файл vkapi.php в папке плагина, найдём там функцию add_fb_comments() и перед строкой class=’fb-comments’ (или после неё, не важно) добавим строку id=’fb-comments’.
Таким образом функция add_fb_comments() станет выглядеть так:
function add_fb_comments() { $width = get_option('vkapi_comm_width'); $limit = get_option('vkapi_comm_limit'); $url = get_permalink(); echo " <div style='background:white' id='fb-comments' class='fb-comments' data-href='{$url}' data-num-posts='{$limit}' data-width='{$width}' colorscheme='light'> </div>"; }
Сохранить, Upload, Refresh – вуаля, всё работает.
А руссификация этих кнопок и надписи Comments?
Языковость у этого плагина происходит так:
$text = __('Comments:', $this->plugin_domain);
Комментируем соотв. строку и добавляем под ней свою такую:
$text = 'Комментарии: ';
А я уже отсебя добавил, это отсебятина какая-то.
Это мы находим в функции add_tabs_button_start().
Аналогичные действия проделаем для функций add_tabs_button_vk(), add_tabs_button_fb(), add_tabs_button_wp() и называем кнопки как хотим. Я назвал ВКонтакте, Facebook и Сайт соответственно.
Всё, конец. Всё работает? Да!
В заключение можно добавить, что при обновлении плагина все проделанные нами изменения скорее всего сойдут на нет, поэтому их придётся проделывать снова. Либо же не обновлять плагин совсем, если он и так работает нормально и удовлетворяет все наши нужды.
До свидания, друзья!