Но в строке выводится вот так: сайт/favorit/2
Пагинация для отдельных страниц именно так и выглядит (при включённых ЧПУ).
Покажите код шаблона.
Если ввыводить вот такой ссылкой, то пагинация работает,
/favorit/?preview=true
/favorit/?preview=true&page=2
Вот собственно функция вывода вывода статей
//Пагинация
$perpage = 5;
$count_fav = count($favorites);
$count_pages = ceil($count_fav / $perpage);
// если число страниц равно 0
if(!$count_pages) $count_pages = 1;
// получаем номер страницы
if( isset($_GET['page']) ){
$page = (int)$_GET['page'];
if( $page < 0 ) $page = 1;
}else{
$page = 1;
}
// если запрошенная страница больше максимума
if( $page > $count_pages ) $page = $count_pages;
// первая картинка на страницу
$start_pos = ($page - 1) * $perpage;
// последняя картинка на страницу
$end_pos = $start_pos + $perpage;
// если последняя картинка больше максимума картинок
if( $end_pos > $count_fav ) $end_pos = $count_fav;
// получаем пагинацию
$pagination = pagination($page, $count_pages);
if (!$favorites){
echo '<p>Список пуст</p>';
return;
}
echo '<ul class="fav-list">';
for($j = $start_pos; $j < $end_pos; $j++):
$image_attributes = wp_get_attachment_image_src(get_post_thumbnail_id($favorites[$j]), 'thumbnail');
echo '<li><a href="'.get_permalink($favorites[$j]).'"><img src="'.$image_attributes[0].'" alt="" />'.get_the_title($favorites[$j]).'<span class="del-link" data-post="'. $favorites[$j] .'" >❎</span></a>
<span class="fav-load"><img src="'.$src_img.'" alt="" /></span>
</li>';
endfor;
echo '</ul>';
if( $count_pages > 1 ):
echo $output . '<div class="clear"></div><div class="pagination">'
.$pagination. '</div>';
endif;
}
Вот сама пагинация
function pagination($page, $count_pages, $modrew = false){
// << < 3 4 5 6 7 > >>
$back = null; // ссылка НАЗАД
$forward = null; // ссылка ВПЕРЕД
$startpage = null; // ссылка В НАЧАЛО
$endpage = null; // ссылка В КОНЕЦ
$page2left = null; // вторая страница слева
$page1left = null; // первая страница слева
$page2right = null; // вторая страница справа
$page1right = null; // первая страница справа
$uri = "?";
if(!$modrew){
// если есть параметры в запросе
if( $_SERVER['QUERY_STRING'] ){
foreach ($_GET as $key => $value) {
if( $key != 'page' ) $uri .= "{$key}=$value&";
}
}
}else{
$url = $_SERVER['REQUEST_URI'];
$url = explode("?", $url);
if(isset($url[1]) && $url[1] != ''){
$params = explode("&", $url[1]);
foreach($params as $param){
if(!preg_match("#page=#", $param)) $uri .= "{$param}&";
}
}
}
if( $page > 1 ){
$back = "<a class='nav-link' data-page='".($page-1)."' href='{$uri}page=" .($page-1). "'><</a>";
}
if( $page < $count_pages ){
$forward = "<a class='nav-link' data-page='".($page+1)."' href='{$uri}page=" .($page+1). "'>></a>";
}
if( $page > 3 ){
$startpage = "<a class='nav-link' data-page='1' href='{$uri}page=1'>«</a>";
}
if( $page < ($count_pages - 2) ){
$endpage = "<a class='nav-link' data-page='".$count_pages."' href='{$uri}page={$count_pages}'>»</a>";
}
if( $page - 2 > 0 ){
$page2left = "<a class='nav-link' data-page='".($page-2)."' href='{$uri}page=" .($page-2). "'>" .($page-2). "</a>";
}
if( $page - 1 > 0 ){
$page1left = "<a class='nav-link' data-page='".($page-1)."' href='{$uri}page=" .($page-1). "'>" .($page-1). "</a>";
}
if( $page + 1 <= $count_pages ){
$page1right = "<a class='nav-link' data-page='".($page+1)."' href='{$uri}page=" .($page+1). "'>" .($page+1). "</a>";
}
if( $page + 2 <= $count_pages ){
$page2right = "<a class='nav-link' data-page='".($page+2)."' href='{$uri}page=" .($page+2). "'>" .($page+2). "</a>";
}
return $startpage.$back.$page2left.$page1left.'<a class="nav-active">'.$page.'</a>'.$page1right.$page2right.$forward.$endpage;
}
function portfolio_page_template( $template ) {
if( is_page('portfolio') ){
if ( $new_template = locate_template( array( 'portfolio-page-template.php' ) ) )
$template = $new_template ;
}
return $template;
}
add_filter( 'template_include', 'portfolio_page_template', 99 );