Привет всем!

Всю неделю с моим домашним интернетом творилась какая-то беда. То есть, то нет. То, вообще, на целый день отключат. Видимо, у Билайна опять сперли кусок оптоволоконного кабеля… конкуренты. И до сих пор, бардак какой-то твориться, даже некоторые блоги не загружаются.

Нет интернета, соответственно не смог заняться блогом. Зато сколько дел по дому переделал, до которых все руки не доходили, вы бы знали…

Но статья не о том, отсутствие интернета позволило мне решить задачу, с которой возился уже неделю. И для начала, позвольте украсть толику вашего драгоценнейшего внимания.

Прошу вас, друзья, ответить на пару простых вопросов в форме ниже, а дальше… дальше — война план покажет…

 

Еще раз, спасибо, за ваши ответы, а теперь к теме статьи.

Целую неделю занимался фигней установкой и настройкой постраничной навигации… комментариев. А вы думаете, зачем я затеял весь этот опрос? Что бы ваше мнение узнать, по поводу нужности и удобства постраничной навигации комментариев. Тут даже, больше вопрос удобства гостей блога, чем нужности.

Я пока расскажу, как я сделал эту навигацию, а вы подумайте, нужна ли навигация комментариев или нет, хорошо?

Просто постраничная навигация

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

Начну с самого начала, а именно с простой постраничной навигации, которая есть на каждом блоге. Почему с нее? Потому что, иначе будет не понятно, как получилась постраничная навигация в комментариях.

Для простоты, кончено, можно не задумываясь воспользоваться плагином WP-PageNavi, тем более что он не особо влияет на скорость загрузки. Но мы пойдем другим путем, мы же не ищем легких путей. Да и к тому же, это все-таки плагин, который прописывается в базе данных блога и выгнать его потом оттуда стоит больших усилий.

 


В последнее время, меня все чаще посещают мысли, что влияние установленных плагинов на скорость загрузки сайта сильно преувеличенно.

Судите сами, что такое плагин? Плагин – это один файл или набор файлов, позволяющих прикрутить какую-либо функцию (полезную или не очень) на сайт.

А как заменяют плагин?

Практически, тем же кодом, только этот код вставляется непосредственно в исполняющие файлы сайта. Ну, и почему плагин должен влиять на скорость загрузки?

Я, кстати, знаю не мало блогов (тысячников, в том числе), владельцы которых с кодом не заморачиваются вообще. Все делают с помощью плагинов и ничего, их блоги летают как ураган…

А вы что думаете? Жду в комментариях…


Что-то я отвлекся. Итак, идея замены плагина WP-PageNavi с помощью кода, состоит в следующем:  необходимо произвести замену так, чтобы не пришлось потом очень долго перенастраивать оформление этой навигации после сноса плагина. Но при этом сохранить тот функционал, который нужен. У кого плагин не стоит будет гораздо проще, просто устанавливаем код и все.

Отличное и функциональное решение я нашел на блоге WP-Kama. Поэтому, переписывать и пересказывать не буду. Потому, как считаю, что коды необходимо брать у их автора с оригинального сайта. А то, частенько случаются казусы с неправильным копированием. И потом люди жалуются. что код плохой, так как он не работает.

По ссылке сможете найти подробное описание и кода и всего остального вплоть до стилей CSS.

Так вот, вставляете код в файл functions.php, а потом в файлах  index.php, archive.php, search.php вставляете вот такой код:

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

Сразу под строкой <?php endwhile; ?>

Как на скриншоте

Постраничная навигация

Вообще, решения Тимура отличаются оригинальностью, простотой и изяществом. Да и пишет так, что понятно любому новичку.


Маленькая ремарка.

Друзья мои, прежде вы начнете что-то делать и как-то изменять файлы, хочу вам напомнить:

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

Во-вторых, вы должны понимать, что темы оформления у всех разные и соответственно код в файлах темы может быть написан по-разному, что приведет к некоторым затруднениям с установкой кода. Этого не надо бояться, все гораздо проще, чем кажется.


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

Навигация в комментариях

Оказывается постраничная навигация в комментариях реализована в WordPress еще с версии 2.7. Поэтому, все что требуется – это включить ее в настройках блога.

Идем Панель администрирования – Параметры – Обсуждение и ставим галочку в строке Разбивать комментарии верхнего уровня на страницы.Постраничная навигация

Обратите внимание, ключевые слова в этом названии – это КОММЕНТАРИИ ВЕРХНЕГО УРОВНЯ.

Я долго пытался вкурить, почему у меня не отображается навигация. Потом до меня дошло, что считаются только те комментарии, которые находятся в самом начале, то есть в верхнем уровне.

Постраничная навигация

Поэтому, когда в настройках по умолчанию стоит отображать 50 штук комментариев, то естественно, что навигация не будет отображаться. Так что, для отображения страниц необходимо ставить не более 10 штук комментариев., а если у вас на блоге не много комментариев, то и вовсе штуки 3-4.

С настройками закончили, не забываем сохранить изменения и идем смотреть что получилось.

А получилось не очень удобно (это еще мягко говоря). Проявляться просто две ссылки – следующие комментарии и предыдущие комментарии.

Тут, вообще, постраничная навигация вызывает сильные сомнения, а уж такая ни в какие ворота не лезет. Потому будем все менять.

Есть вариант плагина для навигации, очень не плохой, но о нем я расскажу ниже.

А сейчас нам потребуется код, который я нашел на блоге небезызвестного веб-мастера Димокса. Но при использовании этого кода у меня возникла проблема кривого отображения стилей страниц. Все номера съезжали вкривь и вкось, так что я позволил немного вмешаться в код Димокса и вот что у меня получилось:

function wp_corenavi() {
global $wp_query;
$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'] = '&laquo;'; //текст ссылки "Предыдущая страница"
$a['next_text'] = '&raquo;'; //текст ссылки "Следующая страница"

if ($max > 1) echo '<div class="wp-pagenavi">';
if ($total == 1 && $max > 1) $pages = '<span class="pages">Страница ' . $current . ' из ' . $max . '</span>'."\r\n";
echo $pages . paginate_links($a);
if ($max > 1) echo '</div>';
}

Сам код я не менял, а только изменил название контейнера div. Для того, чтобы не возиться со стилями.

Я же не зря начал статью с рассказа о навигации блога. Я вставил названия контейнера из кода Тимура, что позволило мне больше не задумываться о оформлении кнопок страниц.

При установке навигации оформление стилей кнопок страниц автоматически берется из кода для простой постраничной навигации.

Постраничная навигация

Что-то я сегодня косноязычен, если не понятно, то спрашивайте в комментариях.

А дальше, все как обычно, вышеуказанный код вставляем в файл functions.php, а вот такой код:

< ?php wp_list_comments(); ?>< ?php if(function_exists('wp_comments_corenavi')) wp_comments_corenavi(); ?>

необходимо вставить в файле comments.php сразу после строки wp_list_comments()

Постраничная навигация

Таким образом, кнопки навигации появятся на формой комментариев. Если вы хотите чтобы кнопки были видны и в начале комментариев, то код в файле comments.php вставьте перед строкой wp_list_comments()

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

Постраничная навигация


Вообще, все эти вставки кода надо проводить методом тыка, так вставили – не работает, а через строчку – работает. Как говориться, метод научного тыка  — рулит!


Вот и все. Осталось только подвести некоторые итоги и послушать музыку.

Выводы

Всю навигацию на блоге статей и комментариев возможно реализовать двумя способами: плагинами и кодом.

Плагин для установки постраничной навигации — WP-pagenavi.

Плагин для постраничной навигации комментариев — WP-CommentNavi Вот туточки можно почитать про подробную настройку этого плагина.

Достоинства и недостатки того и другого способов вы знаете сами.

Хотя на самом деле плагин от кода отличается не намного, а устанавливать и настраивать гораздо проще. Но и код имеет свои преимущества…

Что и как ставить решайте сами, а вот имеет ли смысл эта навигация, это вопрос который хотелось бы обсудить. Так что жду вас в комментариях. И не забывайте про опрос в начале статьи.

Засим, позвольте откланяться. Удачи всем!

Подписывайтесь на новости, что бы не пропустить.

Еще раз, всем удачи и пока! Увидимся в комментариях.

Всегда ваш, Абрамович Артем.