WP-PageNavi

Наверно на вашем блоге есть пагинация. И скорее всего для её создания вы использовали самый популярный в этом деле плагин: WP-PageNavi.

Но содержание этого плагина мне не очень понравилось: какой-то фреймворк, и куча кода ради простейшей функции!

Для всех кто хочет немного оптимизировать работу блога.

Код который надо вставить в functions.php вашей темы:

function wp_pagenavi($before = '', $after = '', $prelabel = '', $nxtlabel = '', $pages_to_show = 5, $always_show = false) {

	global $request, $posts_per_page, $wpdb, $paged, $totalpost_count, $posts_per_page_homepage;
	if($posts_per_page_homepage)
	{
		$posts_per_page = $posts_per_page_homepage;
	}
	if(empty($prelabel)) {
		$prelabel  = '«';
	}
	if(empty($nxtlabel)) {
		$nxtlabel = '»';
	}
	$half_pages_to_show = round($pages_to_show/2);
	if (!is_single()) {
		if(is_tag()) {
			preg_match('#FROMs(.*)sGROUP BY#siU', $request, $matches);		
		} elseif (!is_category()) {
			preg_match('#FROMs(.*)sORDER BY#siU', $request, $matches);	
		} else {
			preg_match('#FROMs(.*)sGROUP BY#siU', $request, $matches);		
		}
		$fromwhere = $matches[1];
		$numposts = $wpdb->get_var("SELECT COUNT(DISTINCT ID) FROM $fromwhere");
		
	}
	if($totalpost_count)
	{
		$numposts = $totalpost_count;
	}
	$max_page = ceil($numposts /$posts_per_page);
		if(empty($paged)) {
			$paged = 1;
		}
		if($max_page > 1 || $always_show) {
			echo "$before  $after";
		}
}

Скачать код можно по ссылке:
http://irus.streetball.name/files/pagenavi.zip

Чтобы добавить пагинацию достаточно вставить в файлы шаблона:


(Если вы уже используете wp-pagenavi, то этот код скорее всего проставлен :!: )

6 Комментарии

  1. хм, код неправильно вставился… берите тот что по ссылке, и
    Чтобы добавить пагинацию достаточно вставить в файлы шаблона:

    wp_pagenavi();

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*