Как добавить постраничную навигацию в WordPress, чтобы заменить навигацию «Предыдущая/Следующая»

Блог Wordpress на компьютере

Если вы решили начать блог на WordPress, то по умолчанию страницы архивов WordPress имеют настройку «Предыдущая/Следующая». Эта настройка достаточна для большинства людей, которые, скорее всего, не задумываются об этом. Но если вы придирчивый тип, который любит настраивать каждую мелочь, возможно, вы захотите, чтобы на ваших страницах отображались номера страниц.

В этом случае у вас есть два варианта. Вы можете либо изменить код, либо выбрать простой способ и использовать плагин.

Содержание

  • Добавление постраничной навигации в блог на WordPress без плагина
  • Могу ли я разделить один пост или страницу WordPress на несколько страниц?
  • Использовать плагин WordPress, чтобы заменить «Предыдущая/Следующая» на номера

Добавление постраничной навигации в блог на WordPress без плагина

Если идея использования еще одного плагина не очень привлекательна (в конце концов, они замедляют ваш сайт), тогда вы можете решить, что изменение кода — это лучший способ. На самом деле это не так сложно, если вы знаете, где искать. Если вы не знаете, мы покажем вам.

Сначала вам понадобится FTP-программа. Это просто программа, которая подключается к вашему сайту и отображает файлы сайта. Самая популярная — FileZilla, но вы можете использовать любую, которая вам понравится. Лично я использую CyberDuck. Оба бесплатны, но у CyberDuck есть надоедливое всплывающее окно с просьбой пожертвовать разработчику.

Войдите на ваш сайт с помощью FTP-программы, и вы увидите файлы.

Вход на сайт Cyberduck Ftp

Теперь найдите файл с именем functions.php. Он находится в папке вашей темы, которая обычно расположена по адресу /wp-content/themes/ИМЯ ТЕМЫ. Откройте файл functions.php в текстовом редакторе и добавьте следующее в конец файла. Не забудьте сохранить изменения в файле.

function numeric_posts_nav(){  
  
if( is_singular())  
return;  
  
global$wp_query;  
  
/** Прекратите выполнение, если есть только 1 страница */  
if($wp_query->max_num_pages<=1)  
return;  
  
$paged= get_query_var('paged') ? absint( get_query_var('paged')):1;  
$max=intval($wp_query->max_num_pages);  
  
/** Добавьте текущую страницу в массив */  
if($paged>=1)  
$links[]=$paged;  
  
/** Добавьте страницы вокруг текущей страницы в массив */  
if($paged>=3){  
$links[]=$paged-1;  
$links[]=$paged-2;  
}  
  
if(($paged+2)<=$max){  
$links[]=$paged+2;  
$links[]=$paged+1;  
}  
  
echo'  
'."\n";  
  
/** Ссылка на предыдущий пост */  
if( get_previous_posts_link())  
printf('  
%s  
'."\n", get_previous_posts_link());  
  
/** Ссылка на первую страницу, плюс многоточие, если необходимо */  
if(!in_array(1,$links)){  
$class=1==$paged ? ' class="active"':'';  
  
printf('%s'."\n",$class, esc_url( get_pagenum_link(1)),'1');  
  
if(!in_array(2,$links))  
echo'  
…  
';  
}  
  
/** Ссылка на текущую страницу, плюс 2 страницы в любом направлении, если необходимо */  
sort($links);  
foreach((array)$linksas$link){  
$class=$paged==$link ? ' class="active"':'';  
printf('%s'."\n",$class, esc_url( get_pagenum_link($link)),$link);  
}  
  
/** Ссылка на последнюю страницу, плюс многоточие, если необходимо */  
if(!in_array($max,$links)){  
if(!in_array($max-1,$links))  
echo'  
…  
'."\n";  
  
$class=$paged==$max ? ' class="active"':'';  
printf('%s'."\n",$class, esc_url( get_pagenum_link($max)),$max);  
}  
  
/** Ссылка на следующий пост */  
if( get_next_posts_link())  
printf('  
%s  
'."\n", get_next_posts_link());  
  
echo'  
'."\n";  
}

Далее откройте файл, где отображается постраничная навигация. Обычно это файл index.php и archive.php. Вставьте следующий код для отображения постраничной навигации.