Wordpress 2.7 has a wonderful feature – comments pager. It means that comments to post are separated to several pages. That’s very useful, but, by default, wordpress poorly shows that navigation (only “forward” and “backward” links).

To show a cool pager we need to install WP commentnavi plugin. But, once again, by default it diesn’t look cool.
If you use WP page numbers plugin, then you can use it’s style to show comments pages too. Here’s how to do it.
В вопрдпрессе 2.7 появилась такая замечательная вещь, как навигация по комментариям. Однако по умолчанию она выглядит убого (есть только ссылки вперёд-назад), и гораздо приятнее использовать постраничную навигацию.
Это для нас делает плагин WP commentnavi. И, опять же, он не очень симпатично выглядит по умолчанию.
Зато есть очень красивая и функциональная листалка для страниц блога под названием WP page numbers.

Соотвественно, было бы классно, чтобы оно выводилось одинаково, и в одном стиле. Бесспорно, это можно сделать через настраиваемый css плагина WP commentnavi – но это не очень удобно, да и зачем нам подгрузка лишних стилей?
Лучше сделать так, чтобы WP commentnavi использовал стили от WP page numbers.

How to do it:
1) Open wp-commentnavi.php, and remove lines


Как это сделать:
1) открываем wp-commentnavi.php, после чего



### Function: Comment Navigation CSS
add_action('wp_head', 'commentnavi_css');
function commentnavi_css() {
	if(@file_exists(TEMPLATEPATH.'/commentnavi-css.css')) {
		wp_register_style('wp-commentnavi', get_stylesheet_directory_uri().'/commentnavi-css.css', false, '1.00', 'all');		
	} else {
		wp_register_style('wp-commentnavi', plugins_url('wp-commentnavi/commentnavi-css.css'), false, '1.00', 'all');
	}
	echo "\n".'<!-- Start Of Script Generated By WP-CommentNavi 1.00 -->'."\n";
	wp_print_styles('wp-commentnavi');
	echo '<!-- End Of Script Generated By WP-CommentNavi 1.00 -->'."\n";
}



Просто убираем.

2) Replace function wp_commentnavi($before = ”, $after = ”) with the following code:


2) Заменяем функцию function wp_commentnavi($before = ”, $after = ”) , которая занимается выводом кода пейджера на код

function wp_commentnavi($before = '', $after = '') {
	global $wp_query;
	$comments_per_page = intval(get_query_var('comments_per_page'));
	$paged = intval(get_query_var('cpage'));
	$commentnavi_options = get_option('commentnavi_options');
	$numcomments = intval($wp_query->comment_count);
	$max_page = intval($wp_query->max_num_comment_pages);
	if(empty($paged) || $paged == 0) {
		$paged = 1;
	}
	$pages_to_show = intval($commentnavi_options['num_pages']);
	$pages_to_show_minus_1 = $pages_to_show-1;
	$half_page_start = floor($pages_to_show_minus_1/2);
	$half_page_end = ceil($pages_to_show_minus_1/2);
	$start_page = $paged - $half_page_start;
	if($start_page <= 0) {
		$start_page = 1;
	}
	$end_page = $paged + $half_page_end;
	if(($end_page - $start_page) != $pages_to_show_minus_1) {
		$end_page = $start_page + $pages_to_show_minus_1;
	}
	if($end_page > $max_page) {
		$start_page = $max_page - $pages_to_show_minus_1;
		$end_page = $max_page;
	}
	if($start_page <= 0) {
		$start_page = 1;
	}
	if($max_page > 1 || intval($commentnavi_options['always_show']) == 1) {
		$pages_text = str_replace("%CURRENT_PAGE%", number_format_i18n($paged), $commentnavi_options['pages_text']);
		$pages_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pages_text);
		echo $before.'<div id="wp_page_numbers"><ul>'."\n";
				if(!empty($pages_text)) {
					echo '<li class="page_info">&#8201;'.$pages_text.'&#8201;</li>';
				}					
				if ($start_page >= 2 && $pages_to_show < $max_page) {
					$first_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $commentnavi_options['first_text']);
					echo '<li class="first_last_page"><a href="'.clean_url(get_comments_pagenum_link()).'" title="'.$first_page_text.'">&#8201;'.$first_page_text.'&#8201;</a></li>';
					if(!empty($commentnavi_options['dotleft_text'])) {
						echo '<li  class="space">&#8201;'.$commentnavi_options['dotleft_text'].'&#8201;</li>';
					}
				}
				echo'<li>';
				previous_comments_link($commentnavi_options['prev_text']);
				echo'</li>';
				for($i = $start_page; $i  <= $end_page; $i++) {						
					if($i == $paged) {
						$current_page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['current_text']);
						#echo '<li class="active_page">&#8201;'.$current_page_text.'&#8201;</li>';
						echo '<li class="active_page"><a href="'.clean_url(get_comments_pagenum_link($i)).'" title="'.$current_page_text.'">&#8201;'.$current_page_text.'&#8201;</a></li>';
					} else {
						$page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['page_text']);
						echo '<li><a href="'.clean_url(get_comments_pagenum_link($i)).'" title="'.$page_text.'">&#8201;'.$page_text.'&#8201;</a></li>';
					}
				}
				echo'<li>';
				next_comments_link($commentnavi_options['next_text'], $max_page);
				echo'</li>';
				if ($end_page < $max_page) {
					if(!empty($commentnavi_options['dotright_text'])) {
						echo '<li  class="space">&#8201;'.$commentnavi_options['dotright_text'].'&#8201;</li>';
					}
					$last_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $commentnavi_options['last_text']);
					echo '<li><a href="'.clean_url(get_comments_pagenum_link($max_page)).'" title="'.$last_page_text.'">&#8201;'.$last_page_text.'&#8201;</a></li>';
				}
		echo '</ul><div style="float: none; clear: both;"></div></div>'.$after."\n";
	}
}


Voila, everything works, just like on this page.
Вуаля, всё будет показываться красиво и в одном стиле, совсем как на этой страничке (см. пейджер внизу, после комментариев).