#wordpress #advanced-custom-fields
#wordpress #дополнительно-пользовательские поля
Вопрос:
Попробуйте добиться этого: я создал ACF (пользовательское поле) в своем продукте WooCommerce, и теперь я пытаюсь отобразить это поле в своем шаблоне с помощью этого кода:
<ul class="products">
<?php
$args = array(
'posts_per_page' => 20,
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_type',
'field' => 'name',
'terms' => 'grouped',
),
),
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
$linked_with_items = the_field('linked_with_items');
the_title('<strong>', '</strong>'); echo '<br />';
echo $linked_with_items;
endwhile;
} else {
echo __( 'No products found' );
}
wp_reset_postdata();
?>
</ul><!--/.products-->
Но что бы я ни пробовал с get_field (), поле не отображается в моем шаблоне.
Кто-нибудь может помочь?
https://www.advancedcustomfields.com /
К вашему сведению, это окончательный код
<?php if( have_rows('catalogue') ): ?>
<?php
while( have_rows('catalogue') ): the_row(); // catalogue is the field
the_sub_field('linked_with_items'); ?>
<?php endwhile; ?>
<?php endif; ?>
Комментарии:
1. Просто чтобы подтвердить, что вы правильно установили значение для этого нового поля в своих сообщениях о продуктах? что вы получаете
var_dump(get_field('linked_with_items'));
?2. NULL — это ответ, который я получаю
Ответ №1:
Вы могли бы попробовать с этим:
$linked_with_items = get_field('linked_with_items', get_the_ID());
Если это не сработает, просто в качестве теста вы можете попробовать просто перебирать сообщения с помощью foreach
foreach ( $loop->posts as $post ) {
$linked_with_items = get_field('linked_with_items', $post->ID);
}
Если ничего из этого не работает, пожалуйста, убедитесь, что в вашем продукте действительно есть это настраиваемое поле, дважды проверьте настройки поля ACF (раздел правил), список полей и дважды проверьте страницу редактирования вашего продукта, чтобы увидеть, отображаются ли там поля.
Комментарии:
1. Оба метода не работают. Я думаю, что я делаю что-то не так с циклом … потому что этот цикл находится внутри другого цикла. Я продолжаю искать
2. Пожалуйста, попробуйте var_dump($post-> ID); во втором решении и поиске в базе данных, действительно ли поле acf_field присутствует и сохраняется. Или сделайте наоборот, найдите сообщение с этим acf_field, которое обязательно сохранено, а затем используйте его жестко (просто как тест), чтобы проверить, работает ли get_field для вас
3. Действительно, тогда вы увидите int (304) int (270) int (193) int (19) int (13) int (6)
4. Хорошо, теперь используйте этот идентификатор, выполните поиск в таблице wp_postmeta и посмотрите, есть ли у какой-либо из них «linked_with_items» в качестве одной из строк postmeta с фактическим значением
5. спасибо, что мой разум пошел в правильном направлении! linked_with_items был не полем, а подполем внутри поля, глупо меня