Я перебираю все дочерние страницы текущей страницы. Я возвращаю результаты пользовательского поля «спальни». Это приводит к списку номеров (номеров спален) примерно так — 131413. Это то, что я ожидаю.
Однако я хочу удалить дубликаты, поэтому в приведенном выше примере он будет возвращен как 134.
Я смотрел на массивы, но и не самый лучший, когда дело доходит до php, так что кто-нибудь может помочь, пожалуйста?
Вот мой текущий код для дочернего цикла и возврата поля acf.
<?php
$args = array(
'post_type' => 'property',
'posts_per_page' => -1,
'post_parent' => $post->ID,
'orderby' => 'plot_number',
'order' => 'ASC'
);
$parent = new WP_Query( $args );
if ( $parent->have_posts() ) : ?>
<?php while ( $parent->have_posts() ) : $parent->the_post(); ?>
<?php the_field('bedrooms'); ?>
<?php endwhile; ?>
<?php endif; wp_reset_query(); ?>
Я бы посоветовал поместить числа в массив (идея, на которую вы ссылались в своем вопросе).
я использую implode()
соединить элементы массива, используя пустую строку (без пробелов) в качестве клея. Я также использую array_unique()
функция для возврата нового массива без дубликатов.
Также обратите внимание на использование get_field()
который будет возвращать значение поля вместо the_field()
который выведет это.
Пример:
<?php
$bedrooms = array();
while ( $parent->have_posts() ) : $parent->the_post();
// Add 'bedrooms' field value to the array.
$bedrooms[] = get_field( 'bedrooms' );
endwhile;
// Output as string with no spaces and duplicates removed.
echo implode( '', array_unique( $bedrooms ) ); ?>
Других решений пока нет …