Разбиение комментариев на страницы в wordpress без плагинов

Wednesday, 04 Nov 09 в 16:53

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

1. Первым делом заходим в раздел «Настройки» пункт меню «Обсуждение». Здесь сразу после пункта включения древовидных комментариев вы увидите поле для разбиения по страницам:

страницы комментарии wordpress

В настройках wordpress вы можете указать сколько комментариев должно помещаться на одной странице, какую страницу отображать по умолчанию (первую или последнюю), а также порядок сортировки самих комментариев на страницах – сверху отображаются либо новые, либо старые записи посетителей. Тут каждый должен установить настройки по своему усмотрению, мои параметры смотрите на рисунке выше.

2. Второй шаг – это подготовка шаблона. Если у вас новомодный макет, который учитывает все плюсы последних версий wordpress (в том числе и разбиение комментариев по страницам), то вам повезло. Ничего делать не нужно – просто наслаждайтесь ведением блога. В противном случае над комментариями придется «поколдовать».

В версиях wordpress старше 2.7 за вывод комментариев отвечает функция wp_list_comments(), поэтому вывод комментариев в шаблоне придется изменить так, как это описано в моей статье про древовидными комментариями в wordpress (если что там же есть ссылка на аналогичный пост еще одного специалиста по wordpress Дмитрия Донченко – тоже можете использовать).

3. Третий пункт – добавления навигации по комментариям. После правки шаблона и включения настроек в админке, вы должны получить работающее разбиение по страницам. То есть при наличии нужного числа комментариев в блоге вы увидите отображение последней их страницы, например, если к посту набралось 53 записи, а на каждой странице по 50 сообщений, то увидите всего лишь 3. Нужно добавлять навигацию, для этого используем специальные функции wordpress:

<div class="navigation1"><?php paginate_comments_links(); ?></div>
 <ol class="commentlist">
  <?php wp_list_comments('callback=mytheme_comment'); ?>
 </ol>
<div class="navigation2"><?php paginate_comments_links(); ?></div>

Код выше выводит до и после комментариев перечень допустимых страниц. Использую для этого функцию paginate_comments_links().

Кроме того, существуют еще 2 функции previous_comments_linknext_comments_link, которые выводят ссылку на предыдущую и следующую страницу комментариев без цифр. В общем, используйте вариант, который вам наиболее подходит.

4. После настройки всех функциональных особенностей разбиения комментариев на странице следует позаботиться о дублированном контенте. При разбиении вы получаете отдельные страницы с одинаковым текстом и разными комментариями – да, последние могут внести какое-то разнообразие в внешний вид страницы перед поисковиками, но основного теста значительно больше. В общем, нужно закрыть от индексации страницы с комментариями – для этого вам пригодится плагин Platinum SEO (очень хорошая штука). В настройках плагина есть опция «Use noindex for comment pages of posts». Активируя ее, вы получите в коде каждой страницы с комментариями запись:

<meta name="robots" content="noindex,follow" />

Что запрещает индексирование контента этой страницы. Вот, в принципе, и все:) По-моему, алгоритм ясен и предельно прозрачен. Если есть какие-то вопросы и дополнения – пишите в комментариях.

сервис рассылки сообщений UniSenderP.S. Постовой у нас сегодня необычный. Предлагаю вашему вниманию сервис рассылки сообщений UniSender, который предлагает быструю персонализированную рассылку e-mail сообщений с возможностью использования HTML и отправки файлов. UniSender обладает рядом преимуществ и уникальный возможностей, выделяющих его среди конкурентов. Во-первых, это беспроблемная рассылка – вы просто загружаете контакты клиентов и составляете письмо, все технические вопросы относительно почтовых серверов, проблем со спам листами вас не касаются. UniSender предлагает автоматизацию ведения списков рассылки – подписка, отписка, отсеивание нерабочих адресов и противостояние спаму. Также вы можете задать оформленные HTML-сообщения по своему усмотрению с помощью удобного текстового редактора, а после проведения кампании сможете проанализировать ее статистическую информацию и эффективность. В общем, UniSender позволит организовать ваши email рассылки профессионально и качественно.

Понравился пост? Подпишись на обновления блога по RSS для блоггеров и вебмастеровRSS, RSS для блоггеров и вебмастеровEmail или twitter для блоггеров и вебмастеровtwitter!
Добавить комментарий

Комментариев - 12 для данного поста

  1. @ BOLVERIN Пишет:

    Ожидал уже увидеть SQL запрос с LIMIT :)
    Встречал пару раз разбиение по страницам. Главный минус – неявно то что это первая страница комментариев. Список страниц с каментами лучше выводить и под списком и над – так удобнее и увеличивается интерес посетителя к комментированию.

  2. Tod Пишет:

    BOLVERIN, согласен – вывожу также и под и над, выделяя заметно – думаю, в 99% адекватный человек поймет что где:)

  3. @ BOLVERIN Пишет:

    Самое интересное что если человек видит что комментариев больше чем на одну страницу, то он постарается написать и сам один :) Стандный инстинкт, наверно :)

  4. Sosnovskij Пишет:

    А я, наоборот, вижу комментариев на несколько страниц и никогда не буду оставлять :) По моему лучше на одну страницу.

  5. Tod Пишет:

    Sosnovskij, BOLVERIN, ну разбиение комментариев на страницы я делаю чтобы они компактно помещались на сайте – представляете как будет выглядеть страница с 200-300 комментариями – это ж невозможно прокрутить все:)

  6. Sosnovskij Пишет:

    Tod, безусловно, если есть такое количество комментариев, то да. Про дублированный контент не надо еще забывать.

  7. @ BOLVERIN Пишет:

    2 Sosnovskij: зря беспокоишся :) при таком кол-ве комментариев на странице уникальность не будет меньше 70%. ведь считывается текст вместе с каментами, а не только пост.

  8. Tod Пишет:

    Про уникальность я написал в статье – пункт 4. Все предусмотрено:)

  9. @ BOLVERIN Пишет:

    нууу. так не интересно :)
    можно попробовать скрывать от поисковиков статью подгружая ее AJAX-скриптом. Лишних внутренних страниц не бывает :)

  10. Tod Пишет:

    Для вывода через AJAX нужно писать плагин, тот, который был в наличии все равно создавал страницы для отдельных комментариев дублирую контент.
    Для сапы конечно лишних внутренних не бывает, но имхо иногда лучше качество чем количество – представь ситуацию ты создаешь строго оптимизированный текст с нужным процентом вхождения ключей, а потом все это разбавляет каментами + дублируется на подстраницах – в общем, тут, конечно, каждый решает сам как ему поступать.

  11. @ BOLVERIN Пишет:

    хм.а почему бы тогда не сделать так как я сказал, только кроме комментариев еще и ссылку на статью подгружать, ну и еще что то определенное для каждой статьи? тогда качество страницы-поста только выростет ( в глазах поисковика ) + дополнительные НЧ из переписки в каментах. если немного повозится, то и для каждой отдельной страницы комментариев можно сделать определенные анкоры для ссылок на страницу-пост где не закрыт от индексации текст поста, но закрыты комментарии.

  12. Егор Пишет:

    Персонализированные расслки известны довольно давно, начинал их создавать в сервисе smartrespond или в чем-то подобном, поэтому не такое уж это необычное явления)

Оставить комментарий (правила комментирования)