есть ли комментарии, неверные для вышедших из системы посетителей?


По какой-то странной причине комментарии не отображаются, когда пользователь не вошел в систему. Я провел несколько обширных экспериментов с comments.php без всякого успеха. Вот ссылка на страницу примера:

Http://gycweb.org/by-this-will-all-men-know/

Если вы вошли в систему, вы увидите 3 комментария. Если вы не вошли в систему, ничего, кроме формы. Кроме того, чтобы добавить загадочности, при "редактировании" сообщения изнутри администратора и нажав "показать комментарии", он пытается и не может загрузить комментарии.

Похоже, что условие "have_comments" не выполняется для пользователей, вышедших из системы. Я также пытался заставить wp_list_comments вернуть список, но безуспешно.

Я проверил наличие конфликтов плагинов и пока ничего очевидного. Кто-нибудь из вас сталкивался с этим? Какие-нибудь очевидные ответы?

 1
Author: Chip Bennett, 2011-07-14

3 answers

Возможно, у пользователя вашего веб-сервера нет разрешений на создание новых файлов. Я считаю, что WordPress кэширует комментарии на страницах и публикациях для незарегистрированных пользователей, так что только аутентифицированные пользователи получают свежий список комментариев. Когда пользователь, вышедший из системы, вводит комментарий, список также обновляется его комментарием, который выводит весь список (я пробовал это на своем экземпляре WP и на вашем, это работает таким образом). В противном случае WP пытается получить комментарии из файла, который он не мог создать заранее, в результате функция have_comments() возвращает значение false.

Итак, если вы предоставите разрешения на запись для www-данных или как там еще называется пользователь вашего веб-сервера, вы забудете об этой проблеме.

Все это по-прежнему остается теорией, так как у меня не будет доступа к моей установке в течение примерно 10 дней, но я твердо верю, что это решение.

 1
Author: vlood, 2012-05-24 23:02:15

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

Если вы столкнетесь с подобными проблемами, внимательно посмотрите на любые пользовательские запросы, которые могут возникнуть у вас в шаблоне, и убедитесь, что вы их правильно завернули.

 0
Author: Jonathan Wold, 2012-12-18 05:02:56

Согласно вашему первоначальному вопросу: "Если вы вошли в систему, вы увидите 3 комментария. Если вы не вошли в систему, ничего, кроме формы.... Похоже, что условие "have_comments" не выполняется для пользователей, вышедших из системы".

Намерены ли вы показывать комментарии для всех пользователей, как вошедших, так и вышедших из системы?

Если вы хотите, чтобы комментарии отображались для вышедших из системы пользователей, вам нужно удалить это:

<?php if ( post_password_required() ) : ?>
            <p class="nopassword"><?php _e( 'This post is password protected. Enter the password to view any comments.', 'twentyten' ); ?></p>
        </div><!-- #comments -->

 -1
Author: Sean Lee, 2011-07-17 21:53:16