BuggyBuggy
@BuggyBuggy

Почему при выводе через echo переменная выводится не там?

Добрый день.
Даже не знаю как такое загуглить...
В Вордпрессе в цикле выводятся отзывы со ссылками на сканы отзывов. Бывают картинки, бывают PDF.
Вот код:
<a href="<?php echo $file['url']; ?>" 
													<?php 
														switch ($filetype) {
															case 'application/pdf':
																echo 'target="_blank"';
																break;
															case 'image/gif':
															case 'image/jpeg':
															case 'image/png':
																echo 'rel=lightbox'.the_ID().'!';
																break;
															default:
																break;
														};
													?>
													class="feedback-item-handwrite">
													Смотреть рукописный отзыв
												</a>


Всё нормально работает с pdf: target=_blank выводится нормально. Но при jpg вывод такой:
3688rel="lightbox!"
Где "3688" это the_ID(), т.е. id отзыва. Это нужно для отделения галерей лайтбокса для каждого отзыва. "!" в конце это просто для примера, знак конца строки.
Да, оно работает именно на лайбоксе и именно так. Сайт уже готовый давно, я просто вношу вот такое изменение на него.

Вопрос: почему the_ID() выводится не там, где я ему сказал в строке echo 'rel=lightbox'.the_ID().'!';

Ещё на этом же сайте если просто объявить переменную
eAOX5Qxc9OqoQr.jpg,

то она выводится, как если бы я использовать echo:
YmEWqxdtw5aoPA.jpg

Может там какая-то более глобальная проблема и из-за этого не работает и нормальный вывод?
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Если нужно получить ID, а не выводить его на экран то используйте функцию get_the_ID() или такой код: $post->ID.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@hell
Кавычку после восклицательного знака поставьте, и будет вам великая радость
Ответ написан
@green_goo
Даже не знаю как такое загуглить...

А почитать документацию перед началом работы не нужно?
https://developer.wordpress.org/reference/function...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы