HTML не отображается внутри инструкции IF (Wordpress)

У меня следующая проблема. Я использую расширенные настраиваемые поля для Wordpress, чтобы создать поле подзаголовка для сообщения. Мне нравится придавать этому подзаголовку определенный стиль, но мой HTML-код в операторе IF не отображается на странице. $subtitle показывает.

<?php $subtitle = the_field('subtitle'); ?>
<?php if(strlen(trim($subtitle)) > 0): ?>
  <div class="post-sub-title"><?php $subtitle; ?></div>
<?php endif; ?>

Я потратил часы на поиск похожих проблем, но не смог найти никаких решений. Так что, наверное, это ошибка новичка с моей стороны.

Решение

<?php $subtitle = get_field('subtitle'); ?>
<?php if(strlen(trim($subtitle)) > 0): ?>
  <div class="post-sub-title"><?php $subtitle; ?></div>
<?php endif; ?>

Изменено the_field() на get_field(). Слава Адитье Викасу!


person W1NDHOND    schedule 15.10.2013    source источник


Ответы (3)


попробуйте использовать этот фрагмент кода:

<?php if(strlen(trim($subtitle)) > 0): ?>
  <div class="post-sub-title"><?=$subtitle?></div>
<?php endif; ?>

вместо этого :

<?php if(strlen(trim($subtitle)) > 0): ?>
  <div class="post-sub-title"><?php $subtitle; ?></div>
<?php endif; ?>

а также еще одно!

the_field() не является функцией WordPress по умолчанию

плагин «любой», который вы используете, может иметь соответствующую функцию:

get_field()

person Aditya Vikas Devarapalli    schedule 15.10.2013
comment
Я попробовал то, что вы предложили. Но это не сработало. ‹div› по-прежнему не отображается. Только переменная $subtitle (которая содержит некоторый простой текст). - person W1NDHOND; 15.10.2013
comment
Изменение the_field() на get_field() устранило проблему! Большое спасибо! - person W1NDHOND; 15.10.2013

Вы должны эхо/распечатать его (переменная субтитров).

<div class="post-sub-title"><?php echo $subtitle; ?></div>
person Touch    schedule 15.10.2013
comment
Хорошо, спасибо за ваш ответ, но это не устраняет проблему с тем, что HTML не отображается. - person W1NDHOND; 15.10.2013
comment
Тогда я предполагаю, что длина данных в субтитрах не больше нуля после вызова функции обрезки. Или у вас должна быть ошибка где-то еще в вашем коде, а не в той части, которую вы предоставили. Редактировать: попробуйте распечатать его без использования оператора if и посмотрите, сможет ли он распечатать. - person Touch; 15.10.2013

Попробуй это:

<?php $subtitle = get_field('subtitle'); ?>
<?php if(!empty(trim($subtitle))): ?>
  <div class="post-sub-title"><?php $subtitle; ?></div>
<?php endif; ?>

Спасибо.

person Krunal Shah    schedule 15.10.2013