Здравствуйте, дорогие друзья и читатели – Sozdaiblog.ru!

Тема сегодняшней статьи постраничная навигация WordPress.

Некоторое время назад, мы с Вами уже обсуждали похожую тему.

В ней я описывал замечательный плагин – «WP-PageNavi», который реализовывал удобную и простую постраничную навигацию в WordPress.

Да, плагин действительно хорош, но его присутствие, это ещё одна нагрузка на Ваш ресурс.

Поэтому избавление от лишнего плагина, поможет нам сделать ещё один шаг к увеличению скорости загрузки сайта.

Взамен плагину мы создадим постраничную навигацию php кодом.

 

Постраничная навигация PHP для WordPress без плагина

Для реализации постраничной навигации WordPress без плагина, нам потребуется следующий код:

 


// Постраничная навигация
function wp_corenavi() {
  global $wp_query, $wp_rewrite;
  $pages = '';
  $max = $wp_query->max_num_pages;
  if (!$current = get_query_var('paged')) $current = 1;
  $a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));
  $a['total'] = $max;
  $a['current'] = $current;

  $total = 1; //1 - выводить текст "Страница N из N", 0 - не выводить
  $a['mid_size'] = 3; //сколько ссылок показывать слева и справа от текущей
  $a['end_size'] = 1; //сколько ссылок показывать в начале и в конце
  $a['prev_text'] = '«'; //текст ссылки "Предыдущая страница"
  $a['next_text'] = '»'; //текст ссылки "Следующая страница"

  if ($max > 1) echo '<div class="navigation">';
  if ($total == 1 && $max > 1) $pages = '<span class="pages">Страница ' . $current . ' из ' . $max . '</span>'."\r\n";
  echo $pages . paginate_links($a);
  if ($max > 1) echo '</div>';
}
// Постраничная навигация

 

Его нужно установить в файл – «functions.php», который находится в папке Вашей активной темы оформления.

Перед тем, как делать изменения в этом файле, обязательно сделайте бэкап Вашего ресурса.

Внутри кода Вы сможете найти настройки, которые помогут изменить некоторые функции вывода навигации.

Далее, скопируйте следующий код и вставьте его в то место, где Вы хотите, чтобы отображалась постраничная навигация:

 

<?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>

 

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

Ещё, было-бы неплохо вывести постраничную навигацию php, в Ваших рубриках.

Чтобы это реализовать, нужно тот же код вставить в файл – «archive.php».

Для корректного отображения навигации, нужно вставлять вышеупомянутый код после строчки – «<?php endif; ?>».

Единственное, что мне постоянно мешало с реализацией постраничной навигации WordPress без плагина, так это стандартная навигация, которая есть во всех движках после версии 2.5.

За её вывод отвечает следующий кусок кода:

 

<?php
if(function_exists('wp_pagenavi')) { ?>
        <div id="pagination">
        <?php wp_pagenavi(); ?>
        </div>
<?php } else {
global $wp_query;
$total_pages = $wp_query->max_num_pages;
if ( $total_pages > 1 ) { ?>
        <div id="pagination">
                <?php posts_nav_link(' | ', __('&laquo; Previous page','chocolate'), __('Next page &raquo;','chocolate')); ?>
        </div>
<?php }
} ?>

 

Он, как раз находится после той строчки.

Просто замените его на свой.

Статья получилась короткая, но очень полезная.

Расскажите, а как у Вас реализована в WordPress постраничная навигация?

На сегодня всё, а впереди Вас ждёт куча новой и полезной информации, не пропустите.

 

С уважением, Денис Черников!