Модуль Pagerfix

В главе 2 вы узнали о проблемах, которые могут вызвать страницы, глубоко зако¬панные в Web-сайте — и одной из причин этих проблем является разбивка на стра¬ницы. Вы можете реализовать модуль, который исправляет ссылки листания — т.е. "< назад" и "дальше >" — на ссылки на отдельные страницы. На рис. 16.16 показано действие этого модуля для сайта http: //www. seoegghead. com.Все выполняет приведенный ниже модуль. Сохраните его под именем pager fix. php в папке blog/wp-content/plugins, а затем активизируйте со страницы администри¬рования WordPress:
<?php /*
Plugin Name: PagerFix
Plugin URI: http://www.seoegghead.com/
Description: Makes the paging in WP more SE-friendly.
Author: Jaimie Sirovich
Version: 1.0
Author URI: http://www.seoegghead.com/ */
function pager_fix($seperator = ' | ',
$after_previous = ' Snbsp;Snbsp;', $before_next = 'snbsp;Snbsp;', $prelabel='Slaquo; Previous Page', $nxtlabel='Next Page Sraquo;1, $current_page_tag = ' b')
{
global $request, $posts_per_page, $wpdb, $paged;
posts_nav_link(1 ' ,$prelabel,' '); echo $after_previous;

pregjnatch('#FROM (.*) GROUP Bi#", $request, $matches); $fromwhere = $matches[l] ;
$numposts = $wpdb->get_var("SELECT COUNT(ID) FROM $fromwhere"); $maxjiumjj>ages = ceil ($numposts / $postsj>erjj>age) ; if ($maxjiumjpages > 1)
{
for ($cnt * 1; $cnt <= $maxjiumjpages; $cnt++)
{
if ($currentj>age_tag && $paged == $cnt) {
$begin_link = "<$current_page_tag>"; $end_link = "";
)
else <
$begin_link = ' ' ; $end_link = ' ' ;
}
$x[] = $begin_link .
'' . $end_link;
)
echo join($separator, $x);
}
echo $beforejiext; postsjiav_link('','',$nxtlabel);
}
?>
После создания и активизации этого модуля необходимо где-то в вашем шаблоне вызвать функцию pager_fix (). Например, в файл index.php стандартного шаблона можно вставить такой код (возможно, с немного другим форматированием):

<?php next_posts_link('Slaquo; Предыдущие элементы') ?>

<?php previous_posts_link('Следующие элементы Sraquo; ') ?>

Чтобы использовать версию "pagerfix" модуля разбивки на страницы, необходимо заменить выделенный код следующим:
v
<?php pager_fix() ?>