Поддержка Проблемы и решения Вывод уникальных значений полей

  • Добрый день.
    пробую реализовать фильтр постов на основе мета полей.
    в случае если вывожу все значения произвольного поля через WP_Query
    получаю просто список полей по порядку.
    как добавить проверку на уникальность значения поля? или по-другому как-то выводить?

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • пробую такой код

    <?php
    $posts = get_posts(array(
    'numberposts' => -1,
    'post_type' => 'book',
    ));
    if($posts) {
    foreach($posts as $post)
    {
    $locations = get_field('trs-g');
    }
    $locations = array_unique($locations);
    foreach($locations as $location){
    echo '<p>' . $location . '</p>';
    } }
    ?>

    выводит только одно значение.

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Добрый.

    Попробуйте заменить
    $locations = get_field('trs-g');
    на
    $locations[] = get_field('trs-g');

    В таком случае получаю Array
    тоже одно значение.
    у меня поле — это чекбокс, но у каждого поста только 1 значение поля.

    сделал print_r на странице, у меня там массив.
    дописал
    echo $location[0];

    в итоге получил код

    <?php
    $posts = get_posts(array(
    'numberposts' => -1,
    'post_type' => 'book',
    ));
    
    foreach($posts as $post) {
    $locations[] = get_field('trs-g');
    echo '<br/>';
    }
    echo print_r($locations);
    echo '<h3>Вывод уникальных строк массива</h3>';
    $locations = array_unique($locations);
    foreach($locations as $location){
    echo '<br/><br/>';
    
    echo $location[0];
    }
    
    ?>

    и все равно выводится только одно значение.

    ссылка кому интересна
    https://trs.it-s.su/

    • Ответ изменён 3 года, 2 месяца назад пользователем usmdamir.

    вроде бы получилось сделать

    <?php
    $posts = get_posts(array(
    'numberposts' => -1,
    'post_type' => 'book',
    ));
    
    foreach($posts as $post) {
    $field = get_field('trs-g');
    $locations[] = $field[0];
    }
    
    $locations = array_unique($locations);
    foreach($locations as $location){
    echo $location;
    }
    
    ?>
Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Вывод уникальных значений полей» закрыта для новых ответов.