Как добавить доп. поле в шаблон списка записей?

Ссылка скопирована
PHP
1 ответ

Нужно задать определенный класс контейнеру списка записей
т.е
хочу что бы с админке каждой категории задавался свой стиль
добавляю доп. поле select, ему даю min, normal, max -
выбираю Показать эту группу полей, если - "в txonomy - category"
при создании категории, выбираю в select нужный стиль напр. normal
но теперь не пойму как это поле вывести
в archive . php перед while ( have_posts() ) : куда не пытаюсь всунуть, поле не выводится таким способом
<div class="<?= the_field('my_select'); ?>">
Как его вывести?

Дополнительно:

а вы привязали кастомное поле ваше к странице архива? насколько я знаю раньше не было выбора страницы архива для привязки и даже вопрос такой задавал
https://qna.habr.com/q/861437
второе, ваш код в вопросе неправильный <?= означает <? echo , но для the_field echo не нужно

  • Антон Литвиненко, Спасибо большое!
    не привязывал
  • Антон Литвиненко,
    В общем так и не получилось у меня ничего
    как поля привязать к архиву ума не приложу, ставил плагин по ссылке с комментария с вашего поста, результата ноль

    у меня есть обычные рубрики, им я вывел поля
    в рубрике заполняю данные поля а вот как их вывести в archive . php фигзнает
    данное поле select хочу поместить в класс, но при добавлении the_field(select'); ничего не выводится

    касаемо плагина, появлися пункт архивных страниц
    выбирая который ничего он не находит

    Как добавить доп. поле в шаблон списка записей?

    Как добавить доп. поле в шаблон списка записей?

    Как добавить доп. поле в шаблон списка записей?

    Как добавить доп. поле в шаблон списка записей?

  • Проблему решил
    никаких танцев с бубнов не нужно было
    вот собственно код вывода этого полоя
    &lt;? echo get_field( 'select', 'category_' . get_queried_object_id() ); ?&gt;

    &lt;? echo get_field( 'select', 'category_' . get_queried_object_id() ); ?&gt;

  • решено

    &lt;? echo get_field( 'select', 'category_' . get_queried_object_id() ); ?&gt;

    &lt;? echo get_field( 'select', 'category_' . get_queried_object_id() ); ?&gt;

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Ольга Сеть Ответ

    Если ACF-поле добавлено к рубрике, его нужно получать не как поле текущей записи, а как поле термина. В архиве категории текущий объект — это WP_Term, поэтому используйте второй параметр в get_field().

    Для стандартных рубрик WordPress:

    &lt;?php
    $class = get_field( 'select', 'category_' . get_queried_object_id() );
    ?&gt;
     
    &lt;div class="&lt;?php echo esc_attr( $class ); ?&gt;"&gt;
        ...
    &lt;/div&gt;

    &lt;?php $class = get_field( 'select', 'category_' . get_queried_object_id() ); ?&gt; &lt;div class="&lt;?php echo esc_attr( $class ); ?&gt;"&gt; ... &lt;/div&gt;

    Более универсальный вариант, который работает не только для category, но и для другой таксономии:

    &lt;?php
    $term  = get_queried_object();
    $class = '';
     
    if ( $term instanceof WP_Term ) {
        $class = get_field( 'select', $term );
    }
    ?&gt;
     
    &lt;div class="posts-list &lt;?php echo esc_attr( $class ); ?&gt;"&gt;
        ...
    &lt;/div&gt;

    &lt;?php $term = get_queried_object(); $class = ''; if ( $term instanceof WP_Term ) { $class = get_field( 'select', $term ); } ?&gt; &lt;div class="posts-list &lt;?php echo esc_attr( $class ); ?&gt;"&gt; ... &lt;/div&gt;

    the_field() сразу печатает значение, а <?= the_field(...) ?> использовать не нужно. Для HTML-атрибута лучше брать значение через get_field() и выводить через esc_attr().

    Если поле не выводится, проверьте в ACF:

    • группа полей привязана к Taxonomy is equal to Category;
    • поле заполнено именно в редактировании рубрики, а не на странице;
    • имя поля точное: select, а не label поля;
    • шаблон действительно открыт на архиве категории.

    Для select-поля хорошо заранее ограничить значения, например min, normal, max, и в CSS описать только эти классы. Так админка не сможет случайно сломать верстку произвольным текстом.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно