Выводим количество пингбеков/трекбеков в админке WordPress

Трекбек – это уведомление о ссылке на веб-документ. Он помогает отслеживать, кто ссылается на страницу (статью) и, следовательно, приводит заинтересованных читателей на данный сайт. Трекбек – один из трех способов линкбека, два других – пингбек (pingback) и рефбек (refback). Обратите внимание, что для применения трекбека не обязательно быть физически связанными друг с другом. Пингбеки были созданы для того, чтобы решить некоторые проблемы, которые люди видели в трекбеках.

По-умолчанию, список записей в консоли вашего WordPress отображается только с количеством комментариев, однако без счетчика трекбеков и пингбеков. Ниже — полезный хук для добавления этого счетчика в админку.

Просто вставляем код ниже в файл functions.php вашей темы или в плагин для сайта WordPress. После сохранения файла вы увидите новую колонку в списке записей с количеством пингбеков/трекбеков.

1function commentCount($type = 'comments'){
2    if($type == 'trackbacks'):
3        $typeSql = 'comment_type = "trackback"';
4        $oneText = 'One :trackback';
5        $moreText = '% :trackbacks';
6        $noneText = 'No :trackbacks';
7    elseif($type == 'pingbacks'):
8        $typeSql = 'comment_type = "pingback"';
9        $oneText = 'One :pingback';
10        $moreText = '% :pingbacks';
11        $noneText = 'No :pingbacks';
12    endif;
13    global $wpdb;
14    $result = $wpdb->get_var('
15        SELECT
16            COUNT(comment_ID)
17        FROM
18            '.$wpdb->comments.'
19        WHERE
20            '.$typeSql.' AND
21            comment_approved="1" AND
22            comment_post_ID= '.get_the_ID()
23    );
24    if($result == 0):
25        echo str_replace('%', $result, $noneText);
26    elseif($result == 1):
27        echo str_replace('%', $result, $oneText);
28    elseif($result > 1):
29        echo str_replace('%', $result, $moreText);
30    endif;
31}
32add_filter('manage_posts_columns', 'posts_columns_counts', 1);
33add_action('manage_posts_custom_column', 'posts_custom_columns_counts', 1, 2);
34function posts_columns_counts($defaults){
35    $defaults['wps_post_counts'] = __('Counts');
36    return $defaults;
37}
38function posts_custom_columns_counts($column_name, $id){
39    if($column_name === 'wps_post_counts'){
40        commentCount('trackbacks'); echo "<br />";
41        commentCount('pingbacks');
42          }
43}
VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top