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

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

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

Теперь мы команда!

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

Автор: в категории Плагины и модули 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, ну а дополнительное условие включено под соответствующим комментарием.

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

Вверх!

Меню блога

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

Облако тегов