Как заменить нативный comment_count совокупным счетчиком комментариев Evolved

Что я пытаюсь сделать

Я использую плагин под названием Comments Evolved, который собирает комментарии с вкладками из Faceook, G+ и WordPress.

Я пытаюсь заменить собственное число comments_number числом из сводного счетчика плагина.

Проблема

Я хочу сделать это с помощью functions.php, но у меня проблемы, так как кажется, что он подсчитывает только количество комментариев Facebook. Я подозреваю, что мой фильтр не сработал, и, следовательно, он вытягивает только то, что будет вытягивать нативный WordPress.

Что я пробовал

В настоящее время я использую этот фильтр:

// Replace native comment count with Comments Evolved comment in native comments_number function function comments_evolved_number() { $number = comments_evolved_get_total_count(); } apply_filters(‘comments_number’, ‘comments_evolved_number’);

но, похоже, это не помогает, поскольку показывает только количество комментариев на вкладке Facebook.

В моем index.php я использую это для извлечения комментариев:

<?php comments_number( ‘Say somethin’!’, ‘1 comment’, ‘% comments’ ) ?>

Я также пробовал add_filter, но это, похоже, ничего не дает, поскольку комментарии вообще не выводятся. Я искал везде, на форумах, в кодексе WordPress, плагине GitHub и даже просматривал похожие темы, связанные с комментариями Disqus, но я не могу найти причину, по которой мой фильтр не работает.

Что я делаю неправильно?

ОБНОВЛЕНИЕ 1

Кажется, это работает:

function wpse_comments_evolved_number( $count ) { // Override the comment count if( function_exists( ‘comments_evolved_get_total_count’ ) ) $count = comments_evolved_get_total_count(); // We must then return the value: return $count; } add_filter( ‘get_comments_number’, ‘wpse_comments_evolved_number’);

… но при тестировании кажется, что он не подтягивает количество комментариев Facebook, хотя подтягивает и агрегирует все остальное:

Комментарии Evolved конструирует comments_evolved_get_total_count() следующим образом:

function comments_evolved_get_total_count() { $total_count = 0; $wordpress_count = comments_evolved_get_wordpress_count(); //$wordpress_count = get_comments_number(); $gplus_count = comments_evolved_get_gplus_count(); $trackback_count = comments_evolved_get_trackback_count(); $facebook_count = comments_evolved_get_facebook_count(); $disqus_count = comments_evolved_get_disqus_count(); $total_count = $total_count + $wordpress_count + $gplus_count + $trackback_count + $facebook_count + $disqus_count; return $total_count; } //add_filter(‘get_comments_number’, ‘comments_evolved_get_total_count’, 4269);

Facebook comments_evolved_get_facebook_count() построен следующим образом:

function comments_evolved_get_facebook_count($url = «») { if(empty($url)){ $url = get_permalink(); } $link = ‘https://graph.facebook.com/?ids=’ . urlencode($url); $link_body = wp_remote_retrieve_body(wp_remote_get($link)); $json = json_decode($link_body); return $json->$url->comments; }

Я не вижу никаких ошибок в этом, а в других местах он выводит правильный счетчик Facebook (я думаю — не уверен).

Что работало, но не кажется эффективным/удовлетворительным

function comment_count_agg() { $total_count = 0; //$wordpress_count = comments_evolved_get_wordpress_count(); $wordpress_count = get_comments_number(); $gplus_count = comments_evolved_get_gplus_count(); $trackback_count = comments_evolved_get_trackback_count(); $facebook_count = comments_evolved_get_facebook_count(); $disqus_count = comments_evolved_get_disqus_count(); $total_count = $total_count + $wordpress_count + $gplus_count + $trackback_count + $facebook_count + $disqus_count; return $total_count; } add_filter(‘comments_evolved_get_total_count’, ‘comment_count_agg’, 4270); add_filter(‘get_comments_number’, ‘comments_evolved_get_total_count’, 4271);

… хотя я не точно уверен, почему.

Я попробовал этот способ, потому что (а) я понял, что что-то в плагине мешает общему счету до применения фильтра и (б) потому что я подумал, что, возможно, приоритеты были какой-то проблемой.

ОБНОВЛЕНИЕ 2

На самом деле я пробовал оба вышеуказанных метода на двух разных сайтах. На 1 сайте все отлично работает любым способом.

На сайте 2 ему не удается подтянуть количество Facebook к общему совокупному количеству. Любые идеи?

Источник: ledsshop.ru

Стиль жизни - Здоровье!