Повторяющаяся проверка в комментариях WP

12 3
HL
На сайте с 12.12.2012
Offline
118
1381

Здравствуйте форумчане. В comments.php есть код, который содержит 2 проверки:

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


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

под проверками я подразумеваю if ( have_comments() )

если удалить строчку

<?php if ( have_comments() ) : ?>
то пропадают комментарии:(

пробовал вариант

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


<?php if ( have_comments() ) : ?>
в этом случае не выводится название поста, к которому идут комментарии. Какой-то замкнутый круг. Может быть кто-нибудь поможет решить мою проблему ???

Хочу получить следующее:

- одна проверка на наличие комментариев

- если нет комментариев - выводится текст: Пока комментариев нет. Напишем?

- если один комментарий - выводится текст: Есть 1 комментарий к <название поста>

- если больше одного комментария - выводится текст: Есть <цифра> комментариев к <название поста>

Заранее всем большое спасибо

- Дорогой выкуп баннерных показов (https://goo.gl/Haxr87). Советую! - СеоПульт (https://seopult.ru/ref/0c1642776e7e1b04) + крауд-ссылки (https://goo.gl/3eXcqn) = успех - Проверенный CashBack сервис (https://goo.gl/mAIbxw). До 30%
S3
На сайте с 29.03.2012
Offline
342
#1

а чем вас не устраивает тот код что есть?

HL
На сайте с 12.12.2012
Offline
118
#2

Sly32, в названии темы ведь все написано: Повторяющаяся проверка в комментариях WP

Это ведь не правильно 2 раза выполнять одно и то же действие.

S3
На сайте с 29.03.2012
Offline
342
#3
HotLab:
Sly32, в названии темы ведь все написано: Повторяющаяся проверка в комментариях WP

Это ведь не правильно 2 раза выполнять одно и то же действие.

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

I
На сайте с 28.03.2011
Offline
37
#4

Ну вот как-то так сделайте


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

<?php if ( $have_comments ) : ?>
Помогаю не только словом.. (/ru/forum/830720)
SeVlad
На сайте с 03.11.2008
Offline
1609
#5
HotLab:
в названии темы ведь все написано: Повторяющаяся проверка в комментариях WP

На заборе тоже написано.. По факту нет никакой "повторяющейся проверки В комментариях". Есть проверка наличия комментариев к посту.

imtod:
Ну вот как-то так сделайте

ТСа пугает if 2 раза :)

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
I
На сайте с 28.03.2011
Offline
37
#6

Ну пугает его два раза запрос к $wp_query->have_comments() на сколько я понял

HL
На сайте с 12.12.2012
Offline
118
#7
SeVlad:
По факту нет никакой "повторяющейся проверки В комментариях". Есть проверка наличия комментариев к посту.

Но суть-то одна. Проверяется 2 раза одно и то же. Или я чего-то не понимаю ?

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

imtod, не очень понял твой код. по сути дела одно и то же происходит. Только в моем примере зарез запрос, в твоем через переменную.

SeVlad
На сайте с 03.11.2008
Offline
1609
#8
imtod:
на сколько я понял

Как видишь, тут я оказался телепатом :)

И насколько я помню (могу ошибаться), запросы вида $wp_query->wp_functions() кешируются на уровне ядра, так что базу лишний раз не дёргают.

HotLab:
Но суть-то одна.

- Где тут суть?
- Да под любым кустом!

Почувствуй разницу - обыскивать сумку и проверить есть ли она вооще. Согласись, совершено разные действия и трудозатраты. Ты заявляешь о первом (и Sly32-я тыкая в это), а по факту спрашиваешь о втором.

Я же просто попытался исправить это недоразумение.

HotLab:
напрягает то, что зачем-то мы запрашиваем 2 раза одно и то же, если это можно сделать один раз и от этого уже плясать.

Разные цели.

HL
На сайте с 12.12.2012
Offline
118
#9

Про разные цели вроде бы понял. Но результат то по каждой из целей мы получаем один и тот же.

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

SeVlad
На сайте с 03.11.2008
Offline
1609
#10
HotLab:
Про разные цели вроде бы понял.

Не понял :)

См.: запустилась первая проверка . По её результатам что-то вывелось. Всё! Всё закончилось.

Вторая проверка - другие результаты в вывод.

Я понимаю, что тебя напрягает.. Но подумай - что бы пользоваться результатами первой проверки в дальнейшем - нужно хранить и использовать эти результаты или хотя бы флаг. Который потом опять же использовать в условиях. Что при случае 2хкратной проверки как-то нецелесообразно. Тем более что в случае с ВП (насколько я помню) происходит кеширование этих данных. (Но конкретно нагрузки надо сравнивать в "боевых условиях").

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий