Как сделать древовидные комментарии без плагина


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

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

И так, закасаем повыше рукава, чтобы не запачкаться, и приступим к делу. Добавим в файл header.php строку кода:

if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) wp_enqueue_script('comment-reply');

Вставляем этот кусочек кода перед строкой

wp_head();

Далее в файл functions.php добавляем следующий код:

<?php
function mytheme_comment($comment, $args, $depth) {
   $GLOBALS['comment'] = $comment; ?>
   <li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
     <div id="comment-<?php comment_ID(); ?>">
      <div class="comment-author vcard">
         <?php echo get_avatar( $comment->comment_author_email, 64); ?>
         <?php printf(__('<cite class="fn">%s</cite> <span class="says">пишет:</span>'), get_comment_author_link()) ?>
      </div>
      <?php if ($comment->comment_approved == '0') : ?>
         <em><?php _e('Ваш комментарий появится после проверки') ?></em>
         <br />
      <?php endif; ?>
      <div class="comment-meta commentmetadata"><?php printf(__('<small>%1$s в %2$s</small>'), get_comment_date(),  get_comment_time()) ?><?php edit_comment_link(__('<div class="entry-edit"></div>'),'  ','') ?></div>
	  <div class="comment-text">
      <?php comment_text() ?>
	  </div>
      <div class="reply">
         <?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
      </div>
     </div>
<?php } ?>

Замечательно! Теперь открываем файл comments.php и заменяем всё, что хранится между тегами <ul class=»commentlist»> и </ul>на

<?php wp_list_comments('callback=mytheme_comment'); ?>

Теперь всё красиво заворачиваем в CSS. Для этого в файл стилей style.css добавьте следующий код:

#author, #email, #url {
	margin:3px 10px 3px 0;
	float:left;
	height:25px;
	color:#555;
	padding:0 12px 0 12px;
	background-color:#dedede;
	font-size:16px;
	border:1px solid #bbb;
	border-radius:12px;
	-o-border-radius:12px;
	-moz-border-radius:12px;
	-webkit-border-radius:12px;
	-ms-border-radius:12px;
	width:150px;
	box-shadow:0 1px 1px #fff;
	-moz-box-shadow:0 1px 1px #fff;
	-webkit-box-shadow:0 1px 1px #fff;
	-o-box-shadow:0 1px 1px #fff;
	-ms-box-shadow:0 1px 1px #fff;
}
#comment {
	width:95%;
	color:#555;
	padding:12px;
	background-color:#dedede;
	border:1px solid #bbb;
	border-radius:12px;
	-o-border-radius:12px;
	-moz-border-radius:12px;
	-webkit-border-radius:12px;
	-ms-border-radius:12px;
	box-shadow:0 1px 1px #fff;
	-moz-box-shadow:0 1px 1px #fff;
	-webkit-box-shadow:0 1px 1px #fff;
	-o-box-shadow:0 1px 1px #fff;
	-ms-box-shadow:0 1px 1px #fff;
	margin:3px 0 3px 0;
	font-size:16px;
	font-family:Tahoma, Arial;
}
#author:focus, #email:focus, #url:focus, #comment:focus {
	box-shadow:0 0 5px #007efd;
	-moz-box-shadow:0 0 5px #007efd;
	-webkit-box-shadow:0 0 5px #007efd;
	-o-box-shadow:0 0 5px #007efd;
	-ms-box-shadow:0 0 5px #007efd;
	border:1px solid #777;
	color:#555;
}
ul.commentlist { font-size:14px;font-family:arial;list-style:none;padding:0;text-indent:0;margin-bottom:20px;}
ul.commentlist li {
	border:1px dashed #d3d3d3;
	background:#eee;
	padding:5px 5px 5px 5px;
	margin:5px 0 0 0;
	border-radius:12px;
	-o-border-radius:12px;
	-moz-border-radius:12px;
	-webkit-border-radius:12px;
	-ms-border-radius:12px;
}
ul.commentlist li.comment { padding:10px 10px 10px 10px; }
ul.commentlist li div.comment-author { font-weight: bold; }
ul.commentlist li div.vcard cite.fn a.url { text-decoration: none; }
ul.commentlist li div.vcard cite.fn a:hover.url { color: #313131; text-decoration: none; }
ul.commentlist li div.vcard img.avatar { border:1px solid #d6d6d6;width:50px;height:50px;float:left;padding:3px;background:#f4f4f4;margin-right:10px; }
ul.commentlist li div.comment-meta { font-family:arial;color:#818181;font-style:oblique;text-shadow:0 1px 0 #fff; }
ul.commentlist li p { color:#606060; clear:both;margin:20px 0 10px 0; }
ul.commentlist li ul { list-style:square; }
ul.commentlist li ul.children { list-style:none; text-indent:0; }
ul.commentlist li ul.children li.bypostauthor { background:#e3e3e3;border:1px dashed #aaa;}
ul.commentlist li.pingback { }
ul.commentlist li.bypostauthor { }
ul.commentlist li.thread-odd {
	border:1px dashed #d3d3d3;
	margin:5px 0 5px 0;
	border-radius:12px;
	-o-border-radius:12px;
	-moz-border-radius:12px;
	-webkit-border-radius:12px;
	-ms-border-radius:12px;
}
.comment-text {
	padding:5px 10px 0 0;
	display:block;
}
.comment-text p {
	padding:5px 10px 0 0;
	display:block;
	font-size:16px;
}
#respond input#submit {
	color:#444;
	font-weight:bold;
	margin:10px 0 10px 0;
	padding:5px 8px 5px 8px;
	border:1px solid #888;
	border-radius:12px;
	-o-border-radius:12px;
	-moz-border-radius:12px;
	-webkit-border-radius:12px;
	-ms-border-radius:12px;
	background: #c1c1c1; /* Old browsers */
	background: -moz-linear-gradient(top, #eeeeee 0%, #c1c1c1 100%); /* FF3.6+ */
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eeeeee), color-stop(100%,#c1c1c1)); /* Chrome,Safari4+ */
	background: -webkit-linear-gradient(top, #eeeeee 0%,#c1c1c1 100%); /* Chrome10+,Safari5.1+ */
	background: -o-linear-gradient(top, #eeeeee 0%,#c1c1c1 100%); /* Opera 11.10+ */
	background: -ms-linear-gradient(top, #eeeeee 0%,#c1c1c1 100%); /* IE10+ */
	background: linear-gradient(top, #eeeeee 0%,#c1c1c1 100%); /* W3C */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#c1c1c1',GradientType=0 ); /* IE6-9 */
}
#respond input#submit:hover {
	color:#666;
	background: #e3e3e3; /* Old browsers */
	background: -moz-linear-gradient(top, #e3e3e3 0%, #ccc 100%); /* FF3.6+ */
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e3e3e3), color-stop(100%,#ccc)); /* Chrome,Safari4+ */
	background: -webkit-linear-gradient(top, #e3e3e3 0%,#ccc 100%); /* Chrome10+,Safari5.1+ */
	background: -o-linear-gradient(top, #e3e3e3 0%,#ccc 100%); /* Opera 11.10+ */
	background: -ms-linear-gradient(top, #e3e3e3 0%,#ccc 100%); /* IE10+ */
	background: linear-gradient(top, #e3e3e3 0%,#ccc 100%); /* W3C */
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e3e3e3', endColorstr='#cccccc',GradientType=0 ); /* IE6-9 */
}

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

Stas Kuryan

Web developer. Перфекционист в написании кода.

112 комментариев

  1. Diam     

    Мне нравится, как ты сделал комментарии, какой я уже в очереди по записи к тебе в ученики? 🙂

    • Stafox        Автор

      Дружище, ты вне очереди 🙂

      • Christik     

        Здравствуйте. Статья очень интересная и полезная, спасибо. ))
        Один вопрос по форме комментариев. Использовать [php]comment_form();[/php] для вывода формы нет желания, хочется вручную написать, по своему желанию. Не подскажете, код для основных элементов формы? В принципе форму вставить получается, но тогда перестают работать древовидные комментарии (ссылка «ответить»).
        Заранее спасибо))

        • Stafox        Автор

          Приветствую. Вот пример кода формы:

          [code]
          <form id="commentform" action="<?php echo get_option(‘siteurl’); ?>/wp-comments-post.php" method="post">
          <div id="author-data">
          <p>
          <input type="text" name="author" id="author" value="<?php if($comment_author!=») _e($comment_author);else _e(‘Имя’); ?>" onfocus="if (this.value == ‘<?php _e(‘Имя’);?>’) {this.value = »;}" onblur="if (this.value == ») {this.value = ‘<?php _e(‘Имя’);?>’;}" tabindex="1" />
          </p>
          <p>
          <input type="text" name="email" id="email" value="<?php if($comment_author_email!=») _e($comment_author_email);else _e(‘E-mail’); ?>" onfocus="if (this.value == ‘<?php _e(‘E-mail’);?>’) {this.value = »;}" onblur="if (this.value == ») {this.value = ‘<?php _e(‘E-mail’);?>’;}" tabindex="2" />
          </p>
          <p>
          <input type="text" name="url" id="url" value="<?php if($comment_author_url!=») _e($comment_author_url);else _e(‘Ваш сайт’); ?>" onfocus="if (this.value == ‘<?php _e(‘Ваш сайт’);?>’) {this.value = »;}" onblur="if (this.value == ») {this.value = ‘<?php _e(‘Ваш сайт’);?>’;}" tabindex="3" />
          </p>
          </div>
          <p>
          <textarea name="comment" id="comment" cols="50" rows="10" tabindex="4"></textarea>
          </p>
          <p>
          <input name="submit" type="submit" id="submit" tabindex="5" value="Комментировать" />
          <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
          <div id="cancel-comment-reply">
          <small><?php cancel_comment_reply_link() ?></small>
          </div>
          </p>
          <?php comment_id_fields(); ?>
          <?php do_action(‘comment_form’, $post->ID); ?>
          </form>
          [/code]

  2. azartan     

    интересно. надо будет попробовать реализовать. спасибо

    • Stafox        Автор

      Пробуйте, если что-то не будет получаться — обращайтесь.

  3. ТОха     

    Круто, а разве в вордпресе от +3 древовидные комментарии не делаются из админки? Я только планирую поставить такие комменты на блог, так что стать для меня крайне полезная…

    • Stafox        Автор

      Насколько я знаю — нет. Как никак — стили придётся по любому писать.

      • ТОха     

        Ладно, сейчас попробуем поставить…., Надеюсь прокатит…

        • Stafox        Автор

          Если нужна будет помощь, или совет — пиши.

  4. Ольга Д.     

    У меня комментарии не древовидные. И аватаров не видно (только в админке). Но пока не рискну сделать что-то подобное, хоть и расписано подробно. А вдруг что-нибудь не так сотворю? Кто ж мне тогда все восстановит!?))) Но в закладки поставлю. На будущее.

    • Stafox        Автор

      А Вы сделайте копию файлов header.php, comment.php и functions.php. И если вдруг что-то не так сотворите, тогда просто вернётесь к предыдущему варианту.

      • Игорь     

        Не работает кнопка ответить, обновляется страница и все, в чем может быть проблема?

        • Stafox        Автор

          Сразу не скажу. Нужно глянуть файл comments.php и functions.php

            • Stafox        Автор

              Проверьте есть ли у Вас строчка [php]if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) wp_enqueue_script('comment-reply');[/php] в файле header.php перед строкой [php]wp_head();[/php]
              Если нет — добавьте. Должно помочь.

          • Игорь     

            Строка была, но не работало.
            Поставил другие скрипты, с полным обновлением comments.php

            Заработало..

  5. Андрей     

    Походу я нашел то, что давно искал. Вот только осталось к сайту и шаблону прикрутить это.

    • Stafox        Автор

      Рад, что пригодилось.

      • Андрей     

        Когда используешь бесплатные шаблоны, надо быть готовым к тому, что они частично рабочие. Лучше делать свой дизайн из дефолтных)

        • Stafox        Автор

          В принципе, если перечитать кодекс wordpress’a, то можно без проблем написать свою тему с нуля. Но без знаний PHP, HTML/CSS тут не обойтись.

  6. Роман     

    А разве надо какие-то заготовки иметь, чтобы комментарии запилить? Не понял вот эти строки.

    Теперь открываем файл comments.php и заменяем всё, что хранится между тегами и
    на…

    Получается у меня уже должно что-то быть написано в файле comments.php, чтобы было что заменять на другое?

    • Stafox        Автор

      Конечно. Ведь этот файл относится к теме wordpress, и уже содержит код, который отвечает за вывод комментариев.

  7. Роман     

    К сожалению, я не знаю, что такое wordpress =(

    • Stafox        Автор

      Никогда не поздно с познакомится с данной CMS (в простонародье «движок»). Именно на этом движке работает данный блог.

  8. Pingback:Древовидные комментарии.

  9. Анна     

    Спасибо за статью. Все сделала — дошла до «Теперь открываем файл comments.php» и не нашла такой кусок, как Вы указали. У меня там вот что (ниже).
    Подскажите, пожалуйста, куда новую команду в этом коде вставить, чтобы комментарии древовидно отражались? Спасибо огромное!

    • Stafox        Автор

      Немного отредактировал Ваш комментарий. Воспользуйтесь пожалуйста тегами (HTML, PHP) для вставки кода (они расположены над полем для ввода комментария)

      • Анна     

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

  10. 12132     

    ну спасибо!!
    убил админку!

    • Stafox        Автор

      Если не умеете, тогда не лезьте, обратитесь к тем, у кого в этом опыта побольше. Как вообще редактирование functions.php и comments.php может влиять на админку?

      Давайте, показывайте, что у Вас там. Будем чинить 🙂

    • Владимир     

      да действительно, прибивает, только не админку, а сам файл unctions.php, при попытке доступа к нему выводит ошибку Parse error: syntax error, unexpected …..functions.php on line 587
      Бум разбираться в чем проблема, удаление этого файла через FZ и перезаливка его не помогают, бум разбираться.

    • Владимир     

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

      • Владимир     

        предыдущий комментарий был ответом на комментарий 12132

      • Stafox        Автор

        Да, бэки, это очень хорошо. Ведь нет ничего сложного, сделать zip-архивчик с названием dd-mm-yyyy H:i.

  11. Владимир     

    Слушай админ, такой вопрос, у меня на блоге перестали работать древовидные комментарии, хотя в настройках админки все выставлено, не знаешь в чем может быть причина такого бага?
    И еще, ты пишешь

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

    Что именно в нем надо менять, к сожалению я пока не разбираюсь в CSS.

    • Stafox        Автор

      Как я посмотрел, древовидные комменты работают. По крайней мере, в предыдущих статьях они есть. Возможно у Вас затерся файл reply.js (или что вроде этого).

      А по поводу изменения стилей для комментариев, то менять придется большую часть: цвета, шрифты, отступы. Без знаний CSS можно наломать дров. Поэтому, я бы посоветовал немного подучить CSS.

      • Владимир     

        ну да, в том то и дело, что в предыдущих статьях они работали, и вдруг перестали, даже не знаю в чем может быть дело )

        • Stafox        Автор

          Убедитесь, что у вас присутствует wp_enqueue_script(‘comment-reply’) в файле header.php
          [php]
          <head>
          ...
          <?php if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) wp_enqueue_script('comment-reply');
          wp_head(); ?>
          ...
          </head>
          [/php]
          И еще, я бы посоветовал убрать «защиту от копирования» — жутко неудобно, ну а тот кто захочет скопипастить нажмет Ctrl+U.

          • Владимир     

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

          • Владимир     

            Кстати, защиту от копирования тоже убрал, если честно, и сам уже некоторое время задумывался о снятии защиты, именно из-за того, что через просмотр кода страницы можно скопировать все, а значит я только зря нагружаю сайт плагином ))

          • Евгений     

            А вот такой вот вариант использовать можно?

            Что-то у меня не выходит прикрутить!

            • Stafox        Автор

              Какой именно? И что не получается?
              Рассказывайте, постараюсь помочь.

  12. Дмитрий     

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

    • Stafox        Автор

      Пожалуйста, пользуйтесь:)

  13. Лола     

    Древовидные комменты были включены в настройках самого WordPress (Параметры — Обсуждение). Прекрасно все работало
    Вчера к вечеру ни с того, ни с сего работать перестали. Работают только из админки. Страница обновляется, ссылка меняется, но не подгружается форма комментирования
    Внедряла Ваш код — результат тот же. Ставила плагин WordPress Thread Comment — никакой реакции.
    Вы упоминали в комментариях о файле reply.js. Обновила Вордпресс заново (обновляла его неделю назад) — ноль реакции.
    Куда еще можно посмотреть, не подскажете?

    • Stafox        Автор

      Если все работало до этого, значит ваша тема поддерживала древовидные комментарии. Что менялось до того, как пропала вложенность комментариев? Может стили, может в файл functions.php что-то добавляли?

      • Лола     

        Я постоянно туда что-то добавляю или меняю — на моем блоге почти нет плагинов, все прописываю в тему.
        Но причина не в этом. После того, как они перестали работать, я сделала откат файлов — они не заработали

  14. Светлана     

    Здравствуйте, может вопрос глупый, но все же. Будет ли при ответе на комментарий приходить письмо, как при работе плагина древовидные комментарии?

    • Stafox        Автор

      Да, будет. Т.к. это опция непосредственно WordPress’a. Задается в Параметры → Обсуждение

      • Светлана     

        А что надо включить, я посмотрела Параметры-Обсуждение и ничего подходящего не нашла.

        • Stafox        Автор

          Отправить мне письмо, когда:

          Кто-нибудь оставил комментарий
          Комментарий ожидает проверки

          • Светлана     

            Может я не правильно объяснила, я другое имела в виду: будет ли получать письмо человек на чей комментарий ответят. Как я сейчас получаю уведомление, что Вы мне отвечаете. Ну судя по тому что я получаю, наверно и другие будут получать, если я себе сделаю такие комментарии.

            • Stafox        Автор

              А, понятно, Вы имели в виду подписку на комментарии. Для этого я использую плагин Subscribe To Comments.

  15. Dayks     

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

    • Stafox        Автор

      Через час-полтора вышлю на почту.

  16. Dayks     

    Прошу прощения за беспокойство, погуглив нашел решение проблемы на стороннем сайте. Если вы хорошо владеете английским, то я советую Вам дополнить свою статью материалом отсюда
    http://bacsoftwareconsulting.com/blog/index.php/wordpress-cat/how-to-change-wordpress-comments-from-linear-to-threaded-nested-format/
    Дело в том, что там есть код файла comment.php, заменив которым файл старой, не поддерживающей древовидные (вложенные) комментарии, темы вебмастер получит тему, которая вдруг получила полную поддержку вложенности комментирования. При чем абсолютно пропадает необходимость править функциональный файл темы, что для некоторых весьма немаловажно, ведь отказавшись от использования плагинов, но не функциональности, этот файл порой раздувается до размеров Млечного Пути. Кстати, предложенный тамошним автором код очень схож с исходным кодом старой темы, что сильно упрощает чтение кода и его дальнейшую правку и адаптацию стиля. А Вам в любом случае спасибо, именно с Вашего блога мои поиски начали приносить хоть какой-то результат. Спасибо за творчество с WordPress!

    • Stafox        Автор

      Ну хорошо, что решение нашлось. В общем не увидел ни какой разницы с тем, что описал я. Мне бы, предложенный способ не подошел, иначе бы пропал функционал моих комментариев и разделение на «Упоминания» и «Комментарии».

  17. Геннадий     

    Здравствуйте! Есть у меня вопросик: в моей последней теме установлена подписка на комментарии, которую можно сделать только на RSS почты, но не посредственно в отдел писем, в браузере Хром, вообще этого сделать нельзя. Плагин Subscribe To Comments, разумеется, корректно не работает. Тема — HTML5 и вот таким простым способом, описанном в статье, вряд ли можно исправить положение, да еще не опытному вебмастеру. Что можете посоветовать или сделать?

    • Stafox        Автор

      Приветствую. Я вообще-то не очень понял, что Вы хотели сказать.
      А комментарий Ваш, вообще пришлось из спама вытягивать.
      Чтобы дать Вам ответ, задам-ка я пару встречных вопросов, чтобы разъяснить ситуацию.
      Что за такое по-вашему RSS-почта?
      Что такое отдел писем?
      И чего нельзя сделать в Хроме?
      И с чего это «разумеется, что плагин Subscribe To Comments, корректно не работает»?
      И уж способ описанный в статье, не исправит положение, потому что древовидные комментарии у Вас уже есть. В чем совет-то нужен?

      • Геннадий     

        Вы знаете, что бы понять быстрее, вам нужно внимательно прочесть последнюю статью на моем блоге, где я рассказываю, как сделать подписку на комментарии и проделать эту процедуру. Или посмотреть скриншоты.
        Особенно серьезны проблемы в Хроме. Там она точно и ни какая — не работает: у всех появляется текстовая страница ( я — не исключение) и дальнейший переход — не возможен.
        Плагин Subscribe To Comments действительно не работает, точнее не работает подписка на комментарии (и функция «ответить», кажется) сообщения из которых, должны приходить в раздел писем, а не в раздел подписок на RSS-ленту( я немного не так выразился).
        Как пример: Вы только что оставили коммент у меня, но попробуйте получить ответ из этого комментария на почту.
        Ранее у меня была установлена другая тема и плагин работал.
        Что хочу: что бы Вы отредактировали (если это возможно нужные файлы ( как описано в статье) для моей темы: дело в том, что тех строк, о которых вы пишете в файле комментс, у меня нет — так, что-то похожее… Могу прислать файл по почте. Как? Работа, с положительным результатом, оплачивается, разумеется. По договоренности.

        Почему мой коммент попал к Вам в спам — не имею понятия, но и у моих, некоторых комментаторов, тоже первоначально, такое бывало.

        • Stafox        Автор

          Так, а с помощью чего сейчас реализована подписка на комментарии?
          Вы хотите сделать отправку уведомлений на почту или же организовать возможность RSS трансляции комментариев?

          • Геннадий     

            Я хочу, что бы комментарии приходили на почту в раздел писем, для всех, кто подписывается на ответы на выбранную статью. Как у Вас.
            Ответы-то приходят через диалоги, но диалоги автора с другими комментаторами могут приходить только в раздел «Подписки», а в Хроме вообще это сделать не возможно.
            Вы читали мою статью?

            • Stafox        Автор

              Да, читал. Однако там все так запутанно. Вы объяснили все на примере с конкретными данными (на примере Яндекс.Почты, у которой наверняка есть интеграция с Яндекс.лентой), где расписали, что и куда должно приходить. Но не забывайте, что есть и другие почтовые сервисы, такие как Gmail и Hotmail. И там нет никакого раздела «Подписки».

              Возможно поэтому между нами возникло непонимание. Вот даже сейчас: я не понял вот этого

              Ответы-то приходят через диалоги, но диалоги автора с другими комментаторами могут приходить только в раздел «Подписки»

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

              • Геннадий     

                Винить браузеры не входит в мою задачу 🙂
                Я не о том. Просто приведу на примере обычного блога, у которого все нормально работает: Зашел в блог, оставил комментарий, установил галочку » Подписаться на комментарии» и теперь ВСЕ, любые комментарии, не только конкретные ответы лично мне, от других авторов, а так же админа, будут приходить ко мне на почту в РАЗДЕЛ «ПИСЬМА», и я могу их читать в своей почте до тех пор, пока я не пожелаю отписаться Именно так происходит у меня, когда я делаю этот реверанс на других блогах.
                Что у меня: если кто-то сделает подписку, нажав на стоку «Подписаться на обновления комментариев» или нажав рядом кнопку RSS, сможет сделать это. НО, как и что у кого будет происходить, я не могу знать. Если я сам произвожу эту операцию, все происходит так, как я в статье показываю на скриншоте. И это точно возможно в Мозилле.
                Там еще комментарии есть: у кого получается и как, кто не желает…
                Пожалуй, для того, что бы Вам стало более понятно, нужно сделать это на моем блоге — тогда кое что прояснится.
                Как объяснить еще более популярно, я не знаю…

                • Stafox        Автор

                  Отписал на почту.

  18. Иван     

    Круто с первого раза заработало))). После всех копи-пастов нажл обновить страницу и не поверил своим глазам!!! Комменты стали древовидными. И на форме ничего не съехало. Это волшебство)))

  19. Иван     

    Поспешил с выводом.. В админке ВП теперь вместо букв отображаются кракозябры.((

    • Stafox        Автор

      Вообще странно, файлы темы никак не должны влиять на кодировку админки. Но как вариант, попробуйте в UTF-8 сохранить functions.php.

    • Stafox        Автор

      А Вы часом плагины никакие не ставили?

      • Иван     

        Сохранял в UTF-8 без ВОМ. Плагины стандартные на дату, русификацию окончаний. Я на денвере все это пробую. Решил поставить другую тему.

  20. Котан     

    Подскажите, как правильно внедрять код в Функции.php. Пробовал вставить разными способами, но сайт падает…

    • Котан     

      С функцией разобрался. Но теперь не могу понять как правильно вставить стили. Просто у меня в шаблоне style.css разделен на несколько файлов.

      • Stafox        Автор

        Можете вставить в любой из них, а можете создать отдельный comments.css и потом подключить его в header.php.

        • Котан     

          Спасибо, разобрался малеха. Подключать стили надо было в главном style.css. Я вообще не знаю для чего невменяемый автор шаблона разделил стили, видимо это должно быть удобно 🙂

          • Stafox        Автор

            Ну, это очень удобно на этапе разработки, однако, когда вылаживаешь в паблик, лучше сбить все в один.

  21. Татьяна     

    Здравствуйте.
    У меня изначально в теме поддерживались древовидные комментарии. Сейчас не работают. Связываю это с недавней установкой плагина Yoast WordPress SEO
    Не знаете, как можно не удаляя плагин вернуть древовидные комменты?
    Может быть прописать какую-то команду где-то? Или все-таки придется осуществлять все описанное в статье?

    • Stafox        Автор

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

      • Татьяна     

        Точно 🙂 Я его деактивировала и древовидность вернулась. Только что проверила.
        А дальше как действовать?

        • Stafox        Автор

          Ну, видимо, плагин написан криво: не должен SEO плагин вмешиваться в отображение комментариев. Варианта 3:
          1. Ждать его обновления — возможно это пофиксят.
          2. Искать альтернативу (я использую All In One SEO Pack).
          3. Либо проделать то, что описано в статье, и задать свой шаблон отображения комментариев. Однако в этом случае не могу гарантировать, что это поможет, т.к. нужно смотреть, каким образом ваш плагин «ломает» встроенную древовидность.

    • Stafox        Автор

      А пробовал вообще? Я как посмотрю на твоем блоге и так древовидные.

  22. AndreyShaD     

    После редактирования файла functions.php слетает кодировка. Пичаль))

    • Stafox        Автор

      Сохраняйте документ с указанием кодировки.

        • Stafox        Автор

          Может не ту кодировку указываете?

          • AndreyShaD     

            Сначала я сделал через встроенный редактор wordpress’а, кодировка слетела сразу после сохранения. Далее скачал файл functions.php с сервера и открыл его notepad++, вставил код, сохранил и обратно залил, снова такое же.

            • Stafox        Автор

              А можно скрин страницы после того, как слетела кодировка?

            • Stafox        Автор

              Как вариант, возможно, копируется какой-то спец символ. Попробуйте так: тот код, который копируете, перед вставкой поместите в текстовый редактор, например в notepad (если работаете под Windows). После чего скопируйте его из редактора в файл functions.php. Сохраняйте в нужной кодировке без BOM.

              • AndreyShaD     

                Кодировка слетает как и сайта, так и админки. Из редактора куда скинуть? Сразу в редактор вордпресса? Я же через notepad++ открыл functions.php скинул туда новый код и сохранил, потом обратно файл залил.

                • Stafox        Автор

                  Из редактора в обычный notepad.exe. Он должен срезать все неизвестные ему символы. Т.к. notepad++ поддерживает utf-8, то он может и ненужный мусор сохранить.

              • AndreyShaD     

                Stafox пишет:
                03.02.2014 в 12:36
                Из редактора в обычный notepad.exe. Он должен срезать все неизвестные ему символы. Т.к. notepad++ поддерживает utf-8, то он может и ненужный мусор сохранить.

                То есть через обычный блокнот?

                • Stafox        Автор

                  Да, он самый.

  23. Андрей     

    Админу респект за классную статью! Сделал, но появилась проблема, даже две:
    1. строчка if (is_singular() AND comments_open() AND (get_option(‘thread_comments’) == 1)) wp_enqueue_script(‘comment-reply’); в хэдере почему-то становится видимой, над рисунком. Кстати, когда сточку убрал из хэдера всё работает и без неё, но как-то с задержкой стал открываться сайт… хотя может это мне кажется.
    2. Глуючит админка, когда делаешь какие-либо изменения и нажимаешь сохранить, то выносит в пустой экран…
    Не подскажите, что можно исправить?

    • Stafox        Автор

      1. Значит она не заключена в теги php кода < ?php ... ?>. Эта строка не делает ничего, кроме как подключает скрипт comment-reply при выполнении условия: просматривается запись, комментарии разрешены и древовидные комментарии включены.
      2. Если все сделали правильно, ничего из сделанных изменений не должно давать такой результат. Посмотрите в сторону последних установленных плагинов.

      • Андрей     

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

        • Stafox        Автор

          Странно. Чтобы найти проблему нужно заглянуть в код.

            • Stafox        Автор

              Если действительно нужно — могу глянуть. Может еще доступ к логам веб-сервера имеется?

              • Андрей     

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

  24. Здравствуйте, здорово, что нашла вашу статью, потому что у меня данный вопрос сейчас стоит очень остро. Из-за того, что были включены древовидные комментарии через админку, появилось много дублей, репли ту ком, кажется, называются, как по английски писать не помню. Но дело в том, что у меня фактически нет зрения, и мне тяжело редактировать коды, может, вы поможете мне в этом? Буду очень благодарна.

    • Stafox        Автор

      Не совсем понял, какая проблема у Вас? Можно подробнее?

      • КОнечно, можно. Я хочу сделать древовидные комментарии без плагина, как у вас, но из-за своего практически отсутствующего зрения и недостатка знаний в программировании боюсь лезть в код. Я бы хотела вам показать свою тему, чтобы вы мне подсказали, в какое место вставлять описанные вами коды. Теперь понятнее стало? Если что, мой скайп rada3451, добавляйтесь, поговорим в чате, и я объясню все недопонимания в подробностях. Заранее спасибо.

        • Stafox        Автор

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

  25. Катерина     

    скажите, Стас, этот способ ещё работает? код можно использовать который вы выложили? или будут ошибки?
    спасибо.

    • Stafox        Автор

      Можно, только осторожно — предварительно все забэкапив 🙂

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

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