Сегодня я попытаюсь рассказать о том, что необходимо сделать, чтобы в вашем шаблоне отображались древовидные комментарии, которые появились в новой версии WordPress 2.7. Сразу же хочу предупредить, что данная инструкция рассчитана на людей, которые хоть немного знают PHP, HTML и умеют редактировать файлы шаблона WordPress-блога.
Прежде чем продолжить чтение, убедительно прошу, сделать резервную копию, шаблона вашего блога, потому как универсальную инструкцию для каждого шаблона написать довольно тяжело, могут возникнуть проблемы, после редактирования файлов.
Проверка открытия файла напрямую, в моем блоге эти строки выглядели вот так:
if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
die ('Please do not load this page directly. Thanks!');
Их необходимо заменить на следующие:
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
die ('Пожалуйста, не загружайте этот файл напрямую. Спасибо!');
Далее проверяем запись на защиту паролем. У меня строчки которые проверяли закрыты ли комментарии паролем, выглядели вот так:
post_password)) { // if there's a password
if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?>
Эти строки необходимо заменить на следующий код:
if ( post_password_required() ) {
echo '
';
return;
}
Теперь наверное самое сложное в этой процедуре, это замена куска файла, который отвечает непосредственно за вывод списка комментариев. Вот таким он был в старых версиях WordPress, повторюсь, в разных шаблонах этот кусок кода, может быть разным!
В WordPress 2.7, этот кусок намного меньше, т.к. за вывод комментариев, теперь отвечает всего одна функция, однако в этом случае, меняется и вид комментариев которые выводятся и расположение некоторой информации о комментариях, именно для этого я и говорил, сделать резервную копию вашего шаблона, вдруг вам не понравится. Хватит говорить, вот кусок кода для WordPress 2.7 комментариев:
if ( have_comments() ) : ?>
Теперь если вы сохраните файл comments.php и комментарии на вашем блоге будут нормально отображаться, значит вы на правильном пути, если нет, имеет смысл перечитать и проверить все ли правильно вы поменяли.
Продолжим наше нелегкое дело, для правильной работы древовидных комментариев WordPress 2.7, нам необходимо вызывать Java-скрипт, для этого открываем файл header.php и перед строкой wp_head() вставляем строку:
if ( is_singular() ) wp_enqueue_script( 'comment-reply' );
К форме комментариев, после полей Имя, E-Mail, Сайт, добавляем еще одну функцию, которая необходима для правильной работы комментариев:
Вся форма комментариев, поля пользователя и поле для ввода текста комментария и кнопка отправки, должна быть заключена в блок
, это необходимо, для правильного отображения формы комментирования, когда человек отвечает на чей-то комментарий.
Текст перед формой комментирования "Оставьте комментарий" или "Оставить комментарий" заменяем на функцию:
Прямо под этой строчкой, добавьте еще несколько, которые позволят отказаться от ответа на комментарий:
< ?php cancel_comment_reply_link() ?>
Чисто теоретически, после того, как вы сделали все это, на вашем блоге, будут работать древовидные комментарии, WordPress 2.7 никаких гарантий того, что они сразу заработают, я дать не могу, у каждого из вас разные шаблоны и расположение функций вывода данных, поэтому для некоторых случаев необходимы будут другие действия.
Я очень надеюсь, что у вас все получилось, если не получилось, обращайтесь, постараюсь помочь.
Если кто-то заметил ошибки в коде или неточности, жду вас в комментариях.
в #