Поэтому я собираю пользовательскую тему, и часть темы позволяет пользователю выбрать фон для слайда на слайдере домашней страницы, содержание на слайде и количество слайдов в слайд-шоу. , Для этого я использую плагин Advance custom fields, и одно из полей — это метка для кнопки slide_button_label .

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

 {amp}lt;?php if (the_field('slide_button_label')) { ?{amp}gt; {amp}lt;a href="#" class="btn btn--frontpage"{amp}gt; {amp}lt;?php the_field('slide_button_label') ?{amp}gt; {amp}lt;/a{amp}gt; {amp}lt;?php } ?{amp}gt; 

В основном это работает, но у меня возникает странная проблема, когда кнопка показывает a tag , а класс, к которому он был прикреплен, полностью удаляется, и он просто показывает простой текст. Я в растерянности, чтобы понять это.

Вы должны использовать функцию изменения «the_field» в операторе if. Вместо этого используйте get_field:

 {amp}lt;?php if (get_field('slide_button_label')) { ?{amp}gt; {amp}lt;a href="#" class="btn btn--frontpage"{amp}gt; {amp}lt;?php the_field('slide_button_label') ?{amp}gt; {amp}lt;/a{amp}gt; {amp}lt;?php } ?{amp}gt; 

get_field возвращает значение, но the_field отображает значение.