Почему выводятся оба значения в IF !empty?

148
06 марта 2019, 02:30

Создал дополнительное поле в Wordpress через плагин ACF. В archive.php темы вывожу H1 заголовок для меток с помощью такого кода:

<h1 class="page-title"><?php $cat_page_title = the_field('h1_caption', $term->taxonomy . '_' . $term->term_id);
       if (!empty($cat_page_title)) {
       echo $cat_page_title;
        } else 
      {                                                                    
      the_archive_title( '<h1 class="page-title">', '</h1>' );
        }
            ?></h1>

Но так выводятся оба заголовка: и $cat_page_title, если он заполнен, и обычный the_archive_title. Если дополнительное поле не заполнено, то соответственно выводится только обычный заголовок метки. Как убрать обычный заголовок, если дополнительное поле заполнено и оставить обычный заголовок, если оно пустое?

Answer 1

Потому что the_ функции вордпресса выводят полученные данные. А получают данные - get_ функции.

<h1 class="page-title"><?php $cat_page_title = get_field('h1_caption', $term->taxonomy . '_' . $term->term_id);
                                            // ^ - `get`, не `the`
if (!empty($cat_page_title)) {
    echo $cat_page_title;
} else  {                                                                    
    the_archive_title( '<h1 class="page-title">', '</h1>' );
}?></h1>

Мануал, в который можно и заглянуть.

READ ALSO
Laravel условие в маршрутах (Routes)

Laravel условие в маршрутах (Routes)

У меня есть маршруты (пример):

153
Форма авторизации php

Форма авторизации php

Есть сайт, на котором надо сделать форму авторизацииОна должна проверять наличие данного пользователя в MySQL по введенному им логину и паролю

177
Сайт не отдает заголовков и возвращает пустой результат на любой запрос

Сайт не отдает заголовков и возвращает пустой результат на любой запрос

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

173