Поддержка Проблемы и решения Текст комментариев в записях всегда «Привет! Это комментарий. …»

  • Во всех комментариях к записям вместо текста комментария всегда отображается «Привет! Это комментарий…» В админке всё нормально. По кнопке «Edit» переходит на редактирование данного комментария со своим текстом. Где, что посмотреть?

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Для начала смотреть в сторону вставок кода и плагинов, использующих query_posts() и не делающих wp_reset_query(), или тупо переопределяющих глобальные переменные $posts и/или $post. Чаще всего этим страдает вывод похожих записей.

    В общем случае — пункты 4-6 инструкции Как задавать правильные вопросы.

    Плагины все отключены. Проблема проявляется с темой Circle LITE By kopatheme https://wordpress.org/themes/circle-lite/. С другой темой проблема не проявляется.

    В файле comments.php строка 55

    
    <div><?php comment_text(true); ?></div>
    

    замените на

    
    <div><?php comment_text(); ?></div>
    

    И обязательно напишите автору темы, чтобы он сходил по ссылке https://codex.wordpress.org/Function_Reference/comment_text и внимательно посмотрел на параметр функции.

    • Ответ изменён 4 года, 10 месяцев назад пользователем Юрий. Причина: исправлен номер строки

    Проблема проявляется с темой Circle LITE By kopatheme https://wordpress.org/themes/circle-lite/.

    Не наблюдаю такого:

    Не наблюдаю такого:

    Как интересно! Неужели true != 1 ?

    Как интересно! Неужели true != 1 ?

    Не знаю как так получается — я просто поставил тему и попробовал воспроизвести проблему 🙂

    Но судя по найденному у этого производителя везде такое.

    Кстати, маленькая поправка: в 55й строке.

    Спасибо! Помогло.

    маленькая поправка

    Спасибо!

    @klever73, а у Вас самый первый пост и комментарий к нему живы? Ну тот контент, который после установки ВП есть на сайте? Посты не удалены?
    Из корзины в тч.

    Самый первый пост жив, не в корзине. Комментарий к нему в корзине.

    Комментарий к нему в корзине.

    Думаю, что он и достаётся в тему. Если удалить из корзины, то проблемы наверняка не будет. Не будет найден первый коммент.

    Хотя, конечно, автор темы с этим накосячил. Ну и ИМХО в функции comment_text есть непорядок (нет соответствующих проверок).

    Непорядок в вызове comment_text(true);, в котором почти явно указан id комментария.

    Непорядок в вызове comment_text(true);, в котором почти явно указан id комментария.

    То, что в теме непорядок с вызовом — это понятно, тут вопросов нет.

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

    при отсутствии коммента поста таким ID

    Параметр функции — ID коммента. В нашем случае (ну, слава Валену, не совсем нашем:)) это 1. Если выводится удаленный совсем или лежащий в корзине коммент, то это действительно неправильно. У меня коммент id = 1 не удален, поэтому вывод текста коммента с id=1 был абсолютно логичным с точки зрения функции.

    Вот у меня почему сработало идеологически правильно

    Та тоже неправильно. Сказано «коммент с id = 1», значит, надо либо вывести этот коммент, либо ничего не выводить (в идеале админу вывести предупреждение о попытке вывода несуществующего коммента).

    Та тоже неправильно. Сказано «коммент с id = 1», значит, надо либо вывести этот коммент, либо ничего не выводить

    Я ж именно об этом:)
    (идеологически правильно — в см в правильной идеологии: посты со СВОИМИ комментами, а не чужими. Но это не правильно с тз логики работы функции — надо либо то, что указано, либо ничего/ошибка.)

    • Ответ изменён 4 года, 10 месяцев назад пользователем SeVlad.
Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Тема «Текст комментариев в записях всегда «Привет! Это комментарий. …»» закрыта для новых ответов.