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

    <div id="commentpost">
    
    <h4 id="comments"><?php comments_number('Пока комментариев нет. Напишем?', 'Есть 1 комментарий', 'Есть % комментариев');?> к “<?php the_title(); ?>”</h4>
    
    <?php if ( have_comments() ) : ?>
    
    <?php if ( ! empty($comments_by_type['comment']) ) : ?>
    
    <div id="post-navigator-single">
    <div class="alignleft"><?php previous_comments_link() ?></div>
    <div cl

    в итоге получается следующий вывод

    Пока комментариев нет. Напишем? к «Название поста»
    Есть 1 комментарий к «Название поста»
    Есть % комментариев к «Название поста»

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

    спасибо

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Вместо

    <h4 id="comments"><?php comments_number('Пока комментариев нет. Напишем?', 'Есть 1 комментарий', 'Есть % комментариев');?> к “<?php the_title(); ?>”</h4>

    ставим

    <h4 id="comments"><?php comments_number('Пока комментариев нет. Напишем?', 'Есть 1 комментарий', 'Есть % комментариев');?> <?php if ( have_comments() ) { ?> к “<?php the_title(); ?>” <?php } ?></h4>

    неа, что-то не так. комментарии полностью пропадают.

    разобрался, моя ошибка была. нечаянно удалил

    <?php if ( have_comments() ) : ?>

    вот только теперь немного не понимаю, что делает эта проверка и чем она отличается от той, которая добавляется в код вывода сообщения ?

    спасибо.

    Проверка делает: Если есть комментарии, то выводить «к записи», если нет комментариев, то не выводить.
    Ничем не отличается.

    получается, что сейчас у меня 2 проверки, которые делают одно и то же ? но почему тогда, после удаления второй проверки — пропадают комментарии ?

    если вставить пропущенное двоеточие перед фигурной открывающейся фигурной скобкой, то все работает, единственное слитают стили и вся форма загоняется в h4

    <h4 id="comments"><?php comments_number('Пока комментариев нет. Напишем?', 'Есть 1 комментарий', 'Есть % комментариев');?> <?php if ( have_comments() ) : { ?> к “<?php the_title(); ?>” <?php } ?></h4>

    как это можно победить ?

    спасибо.

    Модератор Юрій

    (@yube)

    как это можно победить ?

    Видимо, убрать обрамляющий <h4>.

    Юрий, возможно это решение, но я хочу оставить заголовки в h4 и так же хочу избавиться от 2-х проверок.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    если вставить пропущенное двоеточие перед фигурной открывающейся фигурной скобкой, то все работает, единственное слитают стили и вся форма загоняется в h4

    Двоеточие там не пропущено. Это два разных варианта синтаксиса:

    <?php if ( ... ) : ?>
    ...
    <?php endif; ?>
    <?php if ( ... ) { ?>
    ...
    <?php } ?>

    получается, что сейчас у меня 2 проверки, которые делают одно и то же ?

    Не совсем — первая проверка служит для вывода заголовка записи, вторая — для вывода самих комментариев.

    но почему тогда, после удаления второй проверки — пропадают комментарии ?

    Потому что нарушается баланс if/endif. Если удалить вторую проверку и добавить двоеточие после первой — баланс восстанавливается, но нарушается логика вывода.

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Разный вывод сообщения о кол-ве комментариев к посту» закрыта для новых ответов.