WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Вывод произвольных полей плагина ACF на внутренних страницах

Подскажите пожалуйста как вывести произвольное поле ACF в category.php и в single.php

<?php if( $my_field = get_field("work-mode") ){ echo $my_field; } ?> 

пробую так не работает. the_field тоже не работает.

0
Гость
8 лет назад
  • 0
    <?php if( $my_field = get_field( "work-mode", 999 ) ){ echo $my_field; } ?> 

    Где 999 - ID страницы, на котором находится произвольное поле "work-mode".

    Либо же

    <?php the_field("work-mode", 999); ?>

    Если не указывать id (999), то функция получает $post->ID (id текущей страницы).

    и вообще, проверка не верна, проверять надо либо одну переменную либо функцию.

    <?php if( get_field("work-mode") ) echo get_field("work-mode"); ?>

    либо

    <?php
    $my_field = get_field( "work-mode", 999 );
    if( $my_field )
    	echo $my_field;
    ?>

    А лучше их не проверять, смысла нету

    Kama 8 лет назад

    и вообще, проверка не верна

    Вы не правы, правильная проверка! И так лучше чем:

    <?php if(get_field("work-mode")) echo get_field("work-mode") ?>

    Потому что функция вызывается один раз...

    Михаил 7 лет назад

    Здравствуйте. Делаю шаблон для вывода таксономии, получается такой код

    $categories = get_categories(array(
    	'type'         => 'exciting',
    	'child_of'     => 0,
    	'parent'       => '',
    	'orderby'      => 'name',
    	'order'        => 'ASC',
    	'hide_empty'   => 1,
    	'hierarchical' => 1,
    	'exclude'      => '',
    	'include'      => '',
    	'number'       => 0,
    	'taxonomy'     => 'exciting_type',
    	'pad_counts'   => false,
    ));
    foreach( $categories as $category ){
    	echo '<div class="col-md-4 col-sm-6 muzrazdel">';
    	echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>';
    echo '<div class="imgmuztax col-md-4 col-sm-4"><img src="'; if(get_field("thumb_img")) echo get_field("thumb_img"); echo '"/></div>';
    echo '<div class="textmuztax col-md-8 col-sm-8">
    <h5>' . $category->name.'</h5>
    <p>'. $category->description . '</p>
    </div>
    </a>
    </div>';
    }

    Проблема с выводом картинки через ACF

    if(get_field("thumb_img")) echo get_field("thumb_img")

    Подскажите, пожалуйста, что не так?

    naikyavd 7 лет назад

    Начнем с начала и в вкратце.
    Стандартные категории WP являются Таксономией.
    К Таксономиям не обращаются по ID в виде Цифр.
    Вызывая get_field в таксономии без ID, вы обращаетесь непонятно к чему...

    Для корректного вызова нужно узнать название Таксономии (ее слаг) и ID Терма, где лежит произвольное поле, совместить их подчерком "_" и вызвать.

    В конце концов должно быть что то похожее на это:

    <? get_field("thumb_img",'category_'.$category->term_id) ?>
    Михаил 7 лет назад

    Спасибо. Перепробовал уже всё. Не выводит. Произвольное поле Изображение, значение - Ссылка на изображение. Имя поля верное. Ставил подобные поля в шаблонах single и content, всё выводит, а тут нет.

    Михаил 7 лет назад

    Всё получилось. Спасибо большое. Сделал так -

    echo get_field('thumb_img','exciting_type_'.$category->term_id);
    Алексей 2.5 лет назад

    naikyavd СПАСИБО!

    Комментировать
  • 0
    Kama9619

    Вы все правильно делаете судя по документации. Возможно у вас проблема в том что вы указываете неправильное название произвольного поля которое нужно вывести.

    Или как сказал @naikyavd у вас неправильно определяется ID поста и вам нужно указать ID записи во втором параметре.

    Как вариант, посмотрите как называется произвольное поле и выведите его с помощью стандартной функции wordpress: get_post_meta()

    <?php
    if( $my_field = get_post_meta( $post->ID, 'work-mode', 1) ){
    	echo $my_field;
    }
    ?> 
    Виталий 8 лет назад

    Спасибо большое, сейчас уже реализовал вывод информации через виджет, но чуть позже обязательно проверю) Всем большое спасибоsmile

    Комментировать
  • 0
    kolshix779 paxtoy.com

    инструкция
    https://www.advancedcustomfields.com/resources/adding-fields-taxonomy-term/

    Uthvfy 4.9 лет назад

    а не подскажете как можно вывести все поля сразу? Я имею ввиду произвольные поля отдельного поста. Тут вернее у меня не пост, а товар woocommerce. Вывести все поля к товару. Поля при редактировании товара отображаются, но не выводятся. Вернее выводятся но по одному, отдельно выводиш одно поле, потом другое, а полей много, это ж надоест пыль глотать. Как можно прописать в шаблоне код который выводит все поля которые принадлежат данному товару? Или хотя бы группу, и то легче. Пробывал по всякому, не могу понять где у них функция которая отвечает за вывод имени поля, да и мне имени мало, мне нужно вывести не только название поля но и все опции, если это селектор, или все чекбоксы, зачем мне одно имя, глупость какая-то.

    Комментировать
  • 0

    А никого не смущает, что проверяется не оператором сравнения (== или ===), а оператором присваивания (=)?

    Kama 4.1 год назад

    Это нормально! Тут идет присвоение и затем проверка полученной переменной - две операции в одной строке, чтобы потом заюзать эту переменную без повторного вызова функции.

    Комментировать
  • 0

    Помогите пожалуйста решить проблемку)
    Есть 2 произвольных типа записей (service, promo) и произвольная категория (brand), которая их объеденяет.
    service - это страница услуги, promo - это акция. У категории brand есть acf поле (галочка да\нет) (prem), мне нужно вывести акции на странице услуги, той же категории (brand)
    но только тех, у которых стоит эта галочка

    Федор Васильев 1.2 года назад

    Пытаюсь делать так

    $brand = get_the_terms($post->ID, 'brand');
    $brand_cat_id = $brand[0]->term_id;
    
    $args = array(
    
    'post_type' => 'promo',
    'tax_query' => array( array(
    				'taxonomy' => 'brand',
    				'field' => 'term_id',
    				'terms' => $brand_cat_id, )   )
    
    );
    
    $my_query = new WP_Query( $args );
    while( $my_query->have_posts() ) :
    $my_query->the_post();

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

    После решения этой задачки, нужно понять как определять нажата ли галочка у категории

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация