Как исправить некорректное отображение комментариев в WordPress?

Опубликовано: 29.10.2014 | 661

Как исправить неправильный подсчёт комментариев в WordPress?

Привет народ. С Вами снова я, Саня Васильев. Погода на улице просто замечательная, не смотря на то, что ещё глубокая ночь, но всё же настроение, время и спокойствие присутствует и я решил написать сегодня про решение одной проблемы. Наверное у меня входит в привычку писать короткие посты, но есть такие темы, которые не требуют обширного описания.

Однажды я столкнулся с проблемой подсчёта комментариев на главной странице и непосредственно в посте. Люди комментировали статью, но число комментариев оставалось прежним. Заметил я это не сразу. Но сразу же принялся решать эту проблему и колесить просторы интернета в поисках информации. Решение нашёл на блоге ram32.ru, за что автору ресурса огромное спасибо.

Содержание:
1. Почему иногда WordPress некорректно считает комментарии?
2. Как решить проблему с помощью всего-лишь одного SQL-запроса?

Кэширование комментариев

Возвращаюсь к теме. После того как я заметил некорректный подсчёт комментариев, сразу же кинулся искать ответ на вопрос «Почему так происходит?». Долго искать не пришлось. Дело в том, что WordPress кэширует количество комментариев к каждой записи для снижения нагрузки на сервер при каждом пересчёте. По каким-то непонятным причинам число комментариев стало отображаться неверно.

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

У меня такая проблема всплыла после замены темы оформления уже на обновлённой версии движка. Возможно всё дело в теме, но я так не думаю. Тема довольно простая изнутри и не имеет какого-либо функционала по кэшированию. Что я только не делал! Пробовал и отключать плагины и чистить кэш браузера, но всё оказалось бесполезным. Версия wordpress 4.0 выдалась немного странной, но она мне нравится :) Да и вообще этот движок растёт огромными темпами и его функционал и мощность становятся всё больше и больше.

Как решить проблему?

Если у Вас произошла такая же ситуация, Вам нужно выполнить один SQL-запрос через панель управления БД (phpmyadmin), которая присутствует на каждом хостинге. Вам нужно зайти в данную панель, выбрать базу данных и нажать кнопку SQL.

sql-запрос для корректировки подсчёта комментариев.В поле ввода SQL-запроса введите следующий код и нажмите кнопку «ОК».

UPDATE wordpress.wp_posts wpp LEFT JOIN
(SELECT comment_post_id AS c_post_id, count(*) AS cnt
FROM wordpress.wp_comments WHERE comment_approved = 1
GROUP BY comment_post_id) wpc ON wpp.id=wpc.c_post_id SET wpp.comment_count=wpc.cnt
WHERE wpp.post_type IN ('post', 'page') AND (wpp.comment_count!=wpc.cnt OR (wpp.comment_count != 0 AND wpc.cnt IS NULL));

Внимание! Перед выполнением запроса, ОБЯЗАТЕЛЬНО сделайте резервную копию Вашей базы данных. Как это делается, я писал в статье «Как не потерять блог?».

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

Делайте такую операцию только если появилась такая проблема. Если же у Вас всё нормально, можете не брать во внимание этот пост!

На этом у меня всё. Пишите о результатах в комментариях. Спасибо за внимание. С уважением, Александр Васильев.

БредТак себеНеплохоХорошоОтлично
Загрузка...
Подписка на новые статьи блога


Не будь жадиной! Поделись с друзьями :)



Комментарии к этой записи (Правила):

  1. Александр Васильев (09.11.2014)



    Забыл ещё кое-что. В коде вместо слова wordpress вставить нужно имя своей базы данных!

  2. Юрий Йосифович (20.11.2014)



    Так можно подкорректировать статью, это не проблема :) Кстати, такая ошибка есть у Георгия — у него на всех страничках показывает разное количество комментариев в ТОП комментаторов.

    1. Александр Васильев (20.11.2014)



      У Георгия немного не то. У него по идее плагин «hyper cashe» виноват. А здесь имеется ввиду подсчёт комментов на главной и непосредственно в статье.
      У Георгия, после того как оставил комментарий и он его одобрил, в топе всё сразу становится на свои места.
      Это немного не то…

      1. Иван Зелинский (20.11.2014)



        Георгий, как то некрасиво, сильно растянуто по высоте отображается тор-комментаторов

      2. Юрий Йосифович (21.11.2014)



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

      3. Александр Васильев (21.11.2014)



        Странно. У меня всё нормально. Браузер Firefox. Что именно подправить и как решили проблему, можете сообщить в форму обратной связи?

      4. Юрий Йосифович (21.11.2014)



        Найди в своей табличке стилей код:

        .top-comment table {
        /* min-height: 100%; */
        /* height: 100%; */
        /* margin: 20px 0px 0px 5px; */
        }

        И закоментируй его (собственно можешь заменить на тот, что я привел выше) — и все будет замечательно.
        Строка: /* margin: 20px 0px 0px 5px; */ в этом коде отвечает за отступ от заголовка, мне больше нравится, когда его нет, хотя ты при желании его можешь оставить (не комментировать).

      5. Юрий Йосифович (21.11.2014)



        Нет, у Георгия на каждой страничке разное количество комментариев у участников в ТОП комментаторов. Можешь попробовать походить по страничкам и понаблюдать за этим блоком.

    2. Иван Зелинский (20.11.2014)



      Ты прав Юрий и это малость смущает изначально, но потом как то привыкаешь к данной ситуации

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

:arrow: 
:biggrin: 
:confused: 
:cool: 
:cry: 
:eek: 
:evil: 
:exclaim: 
:idea: 
:lol: 
:mad: 
:mrgreen: 
:neutral: 
:question: 
:razz: 
:redface: 
:rolleyes: 
:sad: 
:) 
:surprised: 
:twisted: