Главная Новости

WP-CommentNavi


Опубликовано: 05.09.2018

видео WP-CommentNavi

Постраничная навигация в WordPress
Flector 5

Как ни странно, но создатели WordPress никак не хотят добавить в движок постраничную навигацию, отдавая эту функцию на откуп различным плагинам. То есть формально то постраничная навигация в WordPress существует, но ограничена строго двумя страницами – " предыдущая " и " следующая ", что естественно, мало кого устраивает. В WordPress 2.7 появилось долгожданное нововведение в виде разделения комментариев на страницы, но с той же проблемой, что и всегда: для более-менее нормальной настройки навигации по этим страницам нам придется использовать дополнительный плагин WP-CommentNavi , о нем и будет идти речь. До установки плагина навигация у нас будет выглядеть так:


плагины ХПИ 10 WP CommentNavi

После установки плагина мы получим что-то похожее на:

После небольшого изменения кода плагина и css стилей можно добиться совершенно различного вида этой навигационной панельки:


плагины ХПИ 9 WordPress Database Backup 2 2 2

Скачиваем оригинальный плагин с его домашней страницы или берем русскую версию , устанавливаем:

1. Распаковываем архив.

2. Копируем папку wp-commentnavi в /wp-content/plugins/ .

3. Заходим в админку блога на вкладку " Плагины " и активируем плагин.

Чтобы встроить навигацию в ваш шаблон найдите в файле comments.php строчки (на примере шаблона Default ):

<div class="navigation"> <div class="alignleft"> <?php previous_comments_link ( ) ?> </div> <div class="alignright"> <?php next_comments_link ( ) ?> </div> </div>

<div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div>

И замените их на:

<?php if ( function_exists ( 'wp_commentnavi' ) ) { wp_commentnavi ( ) ; } ?>

<?php if(function_exists('wp_commentnavi')) { wp_commentnavi(); } ?>

По умолчанию ссылку на страницу всех комментариев плагин не выдает, ее надо выводить отдельным кодом:

<?php if ( function_exists ( 'wp_commentnavi_all_comments_link' ) ) { wp_commentnavi_all_comments_link ( ) ; } ?>

<?php if(function_exists('wp_commentnavi_all_comments_link')) { wp_commentnavi_all_comments_link(); } ?>

Надо заметить, что плагин будет работать только если вы вставили оба эти кода строго после цикла The Comment Loop . То есть вывести навигацию перед выводом самих комментариев у вас не получится.

Постраничная навигация по комментариям у вас уже работает, а настройки выводимого текста вы можете изменить в Параметрах\CommentNavi . Не хочу повторяться со своими настройками, которые я уже описывал в статье о плагине WP-PageNavi - если вам это необходимо, то возьмите их там (автор плагина один и тот же и настройки плагинов практически идентичны).

Теперь стоит поговорить о мелких хаках, которые можно применить к плагину. Первым делом я избавил себя от головной боли с настройкой вывода через css ссылки на все комментарии. Я вставил ее в сам плагин, вы тоже можете это сделать заменив в файле wp-commentnavi.php строчку:

на

127 128 case 1 : wp_commentnavi_all_comments_link ( 'Все' ) ;

case 1: wp_commentnavi_all_comments_link('Все');

Затем я избавился от вывода ссылок на предыдущую и следующую страницы (не заполнив эти поля в настройках плагина вы от этих ссылок все равно не избавитесь). Для этого надо удалить строчки:

139 previous_comments_link ( $commentnavi_options [ 'prev_text' ] ) ;

previous_comments_link($commentnavi_options['prev_text']);

и

149 next_comments_link ( $commentnavi_options [ 'next_text' ] , $max_page ) ;

next_comments_link($commentnavi_options['next_text'], $max_page);

Следующее, что мне показалось неправильным это то, что ссылка на последнюю страницу комментариев выглядит как /name.html/comment-page-2#comments вместо того, чтобы показывать /name.html#comments . Ведь в таком случае получается, что у нас есть две абсолютно одинаковые страницы с одним и тем же контентом (даже комментарии будут такими же), но с разными ссылками. С точки зрения SEO дубликаты страниц это плохо и я слегка модифицировал плагин, чтобы избежать такой ситуации. Для этого надо заменить строку:

146 echo '<a href="' . clean_url (get_comments_pagenum_link ( $i ) ) . '" class="page" title="' . $page_text . '">' . $page_text . '</a>' ;

echo '<a href="'.clean_url(get_comments_pagenum_link($i)).'" class="page" title="'.$page_text.'">'.$page_text.'</a>';

на строки:

146 147 148 149 150 if ( $end_page != $max_page or $i != $end_page ) { echo '<a href="' . clean_url (get_comments_pagenum_link ( $i ) ) . '" class="page" title="' . $page_text . '">' . $page_text . '</a>' ; } if ( $end_page == $max_page and $i == $end_page ) { $last_page_text = str_replace ( "%TOTAL_PAGES%" , number_format_i18n ( $max_page ) , $commentnavi_options [ 'last_text' ] ) ; echo '<a href="' . clean_url (get_permalink ( ) ) . '#comments" class="last" title="' . $last_page_text . '">' . $last_page_text . '</a>' ; }

if ($end_page != $max_page or $i != $end_page) { echo '<a href="'.clean_url(get_comments_pagenum_link($i)).'" class="page" title="'.$page_text.'">'.$page_text.'</a>'; } if ($end_page == $max_page and $i == $end_page) { $last_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $commentnavi_options['last_text']); echo '<a href="'.clean_url(get_permalink()).'#comments" class="last" title="'.$last_page_text.'">'.$last_page_text.'</a>';}

а также заменить строку:

159 echo '<a href="' . clean_url (get_comments_pagenum_link ( $max_page ) ) . '" class="last" title="' . $last_page_text . '">' . $last_page_text . '</a>' ;

echo '<a href="'.clean_url(get_comments_pagenum_link($max_page)).'" class="last" title="'.$last_page_text.'">'.$last_page_text.'</a>';

на:

159 echo '<a href="' . clean_url (get_permalink ( ) ) . '#comments" class="last" title="' . $last_page_text . '">' . $last_page_text . '</a>' ;

echo '<a href="'.clean_url(get_permalink()).'#comments" class="last" title="'.$last_page_text.'">'.$last_page_text.'</a>';

На этом изменения плагина закончены. Но вы вовсе не обязаны что-либо менять, так как плагин будет нормально работать и без этих хаков. Изменить настройки выводимой панельки навигации можно через изменение стилей в файле commentnavi-css.css . Если кому интересно, то приведу свой стиль (посмотреть как он выглядит можно в статье WP-Cumulus ):

.wp-commentnavi { padding-top : 10px ; padding-bottom : 10px ; } .wp-commentnavi a , .wp-commentnavi a : link , .wp-commentnavi a : visited { padding : 3px 6px 3px 6px ; margin : 2px 0px 2px 0px ; border-top : 1px solid black ; color : #FFFFFF ; background-color : #4f4f4f ; font-size : 11px ; font-weight : bold ; text-decoration : none ; } .wp-commentnavi a : hover { border-top : 1px solid black ; color : #FFFFFF ; background-color : black ; font-weight : bold ; text-decoration : underline ; font-size : 11px ; } .wp-commentnavi span .pages { padding : 3px 6px 3px 6px ; margin : 2px 0px 2px 0px ; color : #FFFFFF ; border-top : 1px solid black ; background-color : #4f4f4f ; font-weight : bold ; font-size : 11px ; } .wp-commentnavi span .current { padding : 3px 6px 3px 6px ; margin : 2px 0px 2px 0px ; font-weight : bold ; border-top : 1px solid black ; color : #FFFFFF ; background-color : black ; font-size : 11px ; } .wp-commentnavi span .extend { padding : 3px 0px 3px 0px ; margin : 2px 0px 2px 0px ; border-top : 1px solid black ; color : #FFFFFF ; background-color : #4f4f4f ; font-weight : bold ; font-size : 11px ; } .wp-commentnavi-all-comments-link { border-right : 1px dotted black ; border-left : 1px dotted black ; }

.wp-commentnavi { padding-top: 10px; padding-bottom: 10px; } .wp-commentnavi a, .wp-commentnavi a:link, .wp-commentnavi a:visited { padding: 3px 6px 3px 6px; margin: 2px 0px 2px 0px; border-top: 1px solid black; color: #FFFFFF; background-color: #4f4f4f; font-size: 11px; font-weight: bold; text-decoration: none; } .wp-commentnavi a:hover { border-top: 1px solid black; color: #FFFFFF; background-color: black; font-weight: bold; text-decoration: underline; font-size: 11px; } .wp-commentnavi span.pages { padding: 3px 6px 3px 6px; margin: 2px 0px 2px 0px; color: #FFFFFF; border-top: 1px solid black; background-color: #4f4f4f; font-weight: bold; font-size: 11px; } .wp-commentnavi span.current { padding: 3px 6px 3px 6px; margin: 2px 0px 2px 0px; font-weight: bold; border-top: 1px solid black; color: #FFFFFF; background-color: black; font-size: 11px; } .wp-commentnavi span.extend { padding: 3px 0px 3px 0px; margin: 2px 0px 2px 0px; border-top: 1px solid black; color: #FFFFFF; background-color: #4f4f4f; font-weight: bold; font-size: 11px; } .wp-commentnavi-all-comments-link { border-right: 1px dotted black; border-left: 1px dotted black; }

 

Автор плагина:

Страница плагина:

Рассматриваемая версия: 1.10 от 08.06.2008

Совместимость с версией WordPress: 2.8 и выше.

rss