Поддержка Проблемы и решения Не выводится поле ACF

  • Решено Дмитрий

    (@pro100ta)


    Здравствуйте! Такая проблема. В категории товара Woocommerce необходимо вывести поле ACF с WYSIWYG редактор. Ничего не выводится. Пробовал так:

    <?php echo the_field('seokat'); ?>

    так

    <?php $seocat = get_fields('seokat'); 
    echo $seocat;
    ?>

    так

    <?php echo the_field('seokat', 41); ?>

    так

    <?php $seocat = get_fields('seokat', 41);
     echo $seocat; ?>

    так

    <?php
    $queried_object = get_queried_object();
    $catseo = get_fields( 'seokat', $queried_object );																										   
    echo $catseo; ?>

    при этом номер категории выводит правильно

    <?php $qo = get_queried_object();
    
    // текущая страница - это страница таксономии (категории или метки)
    if( ! empty( $qo->term_id ) ){
    	$cat_obj = $qo;
    
    	echo $cat_obj->term_id;
    } ?>

    Самое интересное, что если в настройках ACF это поле поменять приписку с Категории на Товар, то в товарах все выводится. Достаточно только этого:

    <?php echo the_field('seokat'); ?>

    Для категорий вывожу в шаблоне Woocommerce archive-product.php из дочерней темы.

    Подскажите, пожалуйста, в чем может быть проблема? Как сдвинуться с мертвой точки?

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Yuri

    (@yube)

    Формат вызова get_fields(‘seokat’, 41) для записей, для термов другой формат. Как по мне, то далеко не лучшее решение, но авторам виднее.

    https://www.advancedcustomfields.com/resources/adding-fields-taxonomy-term/

    'category_123' $taxonomy . '_' . $term_id A string containing the taxonomy name and term ID

    Сделал такой код из ссылки что вы дали:

    <?php 
    
    // vars
    $queried_object = get_queried_object(); 
    $taxonomy = $queried_object->taxonomy;
    $term_id = $queried_object->term_id;  
    
    $GLOBALS['wp_embed']->post_ID = $taxonomy . '_' . $term_id;
    $field = get_field('seokat', $taxonomy . '_' . $term_id);
    if( $field ) {
        echo $field;
    }																											   
    																												   
    ?>

    Все заработало. Кодом правильно воспользовался?

    Спасибо большое!

    Т. е. так:

    <?php 
    
    // vars
    $queried_object = get_queried_object(); 
    $taxonomy = $queried_object->taxonomy;
    $term_id = $queried_object->term_id;  
    
    $field = get_field('seokat', $taxonomy . '_' . $term_id);
    if( $field ) {
        echo $field;
    }																											   
    																												   
    ?>

    Решено

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Не выводится поле ACF» закрыта для новых ответов.