Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Создание сайтов Харьков

Hypercomments WordPress для разных типов записей

30 мая 2014 в 3:30 Автор: Nikita_Sp в категории Плагины и модули 2 комментария

Сегодня все больше и больше информации появляется в сети Интернет. Все больше и больше компаний заказывают разработку сайтов и представляют всему миру свой продукт. Социальные сети — это мощный инструмент для продвижения продуктов и услуг на интернет-рынке. Таким образом страницы сайтов пестрят виджетами и плагинами социальных сетей: вступите в нашу группу, поставьте лайк, сделайте репост. Эта «социализация» интернета дошла до того что уже около полугода-год группы, компании и фирмы разыгрывают призы с помощью лайков. Чтобы выиграть достаточно сделать репост записи.

Каждая социальная сеть (ФейсБук и ВКонтакте, например) предоставляет возможность использовать виджет комментариев для вашего ресурса, который дает возможность пользователям этой социальной сети оставить комментарий, и вы не будете волноваться на счет спама, роботов и прочих неприятностей, связанных с открытыми комментариями к вашей странице.

Но ведь если существует минимум две социальные глобальные сети, то необходимо учитывать пользователей обеих! Использовать один? Теряем пользователей второй сети. Использовать два виджета комментариев? Не рационально и неудобно. Что же делать?

На этот вопрос уже нашли ответы разработчики таких систем как:

  • Disqus.com
  • IntenseDebate.com
  • Cackle.ru
  • HyperComments.com

Я решил использовать именно HyperComments, т.к. список сетей, поддерживаемых сервисом более подходит для моей аудитории и он более гибок в настройках. Но столкнулся с вопросом, что этот виджет прикрепляется ко всем типам записей (custom post type).

Такой поворот меня не устроил, т.к. виджет может быть встроен один раз в страницу, а некоторые разделы моего сайта требуют несколько форм комментариев на одной странице. И я начал копать код плагина.

В итоге, мной было придумано решение, которое уникально и подойдет для любого сайта, и я думаю для любой версии плагина HyperComments и не снесется при обновлении.

Собственно решение заключается в удалении фильтра для «the_content» и переопределение функции в файле вашей темы functions.php. Код, который необходимо скопировать себе в файл выглядит так:

remove_filter( 'the_content', 'hc_the_content_filter', 50 );
add_filter('the_content', 'hc_the_content_filter_custom_posts_type', 50);
function hc_the_content_filter_custom_posts_type( $content )
{
    global $post;
    global $is_append;
    global $user;

    $parse = parse_url($post->guid);
    if(get_option('hc_root')){
        $url = str_replace('https://','',str_replace('http://','',str_replace('www.','',$post->guid)));
    }else{
        $url = str_replace('https://','',str_replace('http://','',str_replace('www.','',str_replace($parse['host'], get_option('home'), $post->guid))));
    }
    if(get_option('hc_title_widget')){
        if($post->comment_status == 'open'){
            if ( !is_singular()){
                $content = sprintf(
                    '%s<div class="hc_content_comments" data-xid="'.$url.'"></div>',
                  $content
                );
            }
        }
    }

    if(is_singular()){
        // Nikita_Sp hack for DW Q&A comments work
        if($post->comment_status == 'open' && $post->post_type != 'custom-post-type' && $post->post_type != 'your-second-post-custom-type'){
            $is_append = true;
            $widget = hc_get_comment_widget(
                get_option('hc_wid'),
                hc_get_language(),
                $url,
                hc_get_auth(),
                get_option('hc_append'),
                get_option('hc_word_limit'),
                get_option('hc_realtime'),
                get_option('hc_comments_level'),
                get_option('hc_css')
            );
            $content = $content.$widget;
        }
    }
    return $content;
}

Сама функция является оригиналом фильтра для контента записи из плагина HyperComments, ну а дополнительное условие включено под соответствующим комментарием.

На этом все. Удачной социальной интеграции, если есть вопросы — пишите в комментарии или в соответствующий раздел Вопросов и ответов.
Не забываем ставить «лайк» и рассказывать друзьям! Спасибо!

2 комментария

  • Собираемся переходить на использование hypercomments, но что-то не могу понять, как вы реализовали вывод счетчика комментариев в списке статей?
    Используем вордпресс. Не пойму, куда вставлять код, чтобы получать количество комментариев.
    Буду благодарен за помощь вам.

Добавить комментарий для Nikita Sp Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вверх!

Меню блога

Категории блога

Облако тегов