Убрать дубликаты результатов из пользовательского поля WordPress цикла дочерних страниц

Я перебираю все дочерние страницы текущей страницы. Я возвращаю результаты пользовательского поля «спальни». Это приводит к списку номеров (номеров спален) примерно так — 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(); ?>

0

Решение

Я бы посоветовал поместить числа в массив (идея, на которую вы ссылались в своем вопросе).

я использую 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 ) ); ?>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]