Решение проблемы с оформлением ссылки ответа на комментарий

Если на WordPress-сайте в настройках активирована опция древовидных комментариев, то под каждый комментарием появляется ссылка “ответить”, за исключением последнего уровня вложенности.

Верстая шаблоны для WordPress, мне не раз приходилось сталкиваться с необходимостью оформления этой ссылки, например, вот так:

Ссылка 'Ответить на комментарий'

Исходный код ссылки “ответить”, согласно стандартному коду WordPress, выглядит следующим образом:

<div class="reply">
	<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>

Второй комментарий, который на скриншоте – это последний уровень в дереве, т.е. в нем ссылка “ответить” не выводится. Но, оформление, как мы видим, осталось.

Так происходит потому, что ссылка исчезает, а блок <div class="reply"></div> остается, а поскольку к нему применены CSS-стили, поэтому наблюдаем такую некрасивость, как на скриншоте.

Я поэкспериментировал с PHP-кодом, чтобы получить условие, которое позволит исчезать этому блоку одновременно с исчезновением ссылки, и у меня получилось вот такое решение:

<?php if (comments_open() AND (get_option('thread_comments') == 1) AND ($depth != $args['max_depth'])) { ?>
		<div class="reply">
			<?php comment_reply_link(array_merge( $args, array('add_below' => 'div-comment', 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
		</div>
<?php } ?>

Его нужно использовать вместо того кода, который я привел выше.

—–

Лидер в производстве детских развивающих игрушек представляет трехколесный велосипед Smoby с ручкой, в стиле Принцессы Диснея, приобрести который можно в детском интернет-магазине BABADU.RU.

  2 Мне понравилось!

Koммeнтapии (12):

  1. Забавно, как раз сейчас делаю кнопку для отправить, если точнее рисую.
    И след делом думаю нужно делать возможность отвечать на коммент. Читаю название статьи и улыбаюсь :)

  2. А с какой темы скриншот сделан?

  3. Ну а как насчёт:
    .reply > a{

    }

    Проще ведь? Зачем менять код, если всё можно сделать посредством css.

    • Я в статье привел на скрине не совсем удачный пример.

      Дело в том, что блоку .reply добавляется фон, и при этом не нужно, чтобы сама ссылка была блоком.

  4. Может не совсем по теме, но по поводу оформления комментариев.
    Кто-нибудь может подсказать, как изменить стили и текст вот для этих строчек:
    “Оставить комментарий”
    “Комментариев к записи: 6″

  5. спс, интересная статья.
    У меня на блоге возникла проблема, может вы поможете разобраться.
    При добавлении нового комментария, он в админке и в списке “последние комментарии” на главной идёт с сылкой на другую новость (но почему то похожую, с близким ID). Сам текст комментария отображается правильно — к той новости, к которой его писали. Но ВордПресс считает почему-то его комментом к другой новости. :(

    Причём, для зарегистрированных пользователей, всё ок. Работает, как надо. Иногда даже для незарегистрированных.

    Пробовал заменять файл wp-content/themes/*theme_name*/comments.php, колупать в “/wp-includes” comment-template — но безуспешно.

    Подозреваю, что get_the_ID() почему-то возвращает не тот ID.

    Добавляются комментарии в базу данных, как я понял функцией comment_id_fields(). То есть, ошибку нужно искать в функциях, которые вызывает comment_id_fields() — это get_the_ID()…

    Что изменить, чтобы они добавлялись правильно, не представляю. :(

    Буду благодарен, если поможете разобраться в этой проблеме.

  6. То что вы привели пример мне не подходит.

    У меня вот так:

    http://savepic.su/1170482.png

    Вот где автор moslem это ответ на верхнее сообщение, как сделать чтоб оно с верхним не слипало и был отступ слева?

    И еще как сделать кнопку как на вашем блоге Мне понравилось?

    • Вот где автор moslem это ответ на верхнее сообщение, как сделать чтоб оно с верхним не слипало и был отступ слева?

      WordPress заменяет угловые скобки, поэтому код не вставился.

      И еще как сделать кнопку как на вашем блоге Мне понравилось?

      Плагин WizyLike.

Oтпpaвить кoммeнтapий

Облако тегов