Страница Архив Wordpress - Получить связанные таксономии - PullRequest
0 голосов
/ 11 февраля 2020

Я сейчас создаю фильтры для своих архивных страниц. Поскольку я работаю над проектом электронной коммерции (woocommerce), я использую некоторые дополнительные пользовательские термины, такие как бренды. Учитывая, что пользователь находится в архиве футболок категории продукта, я хочу показать на странице архива все бренды, которые связаны с футболками.

С get_terms я могу отображать только все бренды, но не "перекрещенные" футболками. Любая помощь приветствуется. Я также могу быть абсолютно не прав с моим подходом.

Мой подход до сих пор: (Это не может быть распространенным способом)

$product_ids = get_posts(array(
    'numberposts'   => -1, // get all posts.
    'post_type'     => 'product',
    'post_status'   => 'publish',
    'tax_query'     => array(
        array(
            'taxonomy'  => 'product_cat',
            'field'     => 'term_id',
            'terms'     => $term_id,
        ),
    ),
    'fields'        => 'ids', // Only get post IDs
));

foreach ($product_ids as $test_id) {
    $aaa = wp_get_post_terms($test_id, 'manufacturer', array('fields' => 'ids'));
    $brands[] = $aaa[0];
}

$brands = array_unique($brands);

1 Ответ

0 голосов
/ 19 февраля 2020

Мне сложно понять, что такое "бренды". Ваш оператор wp_get_post_terms собирается получить все сообщения для каждой категории в таксономии «производитель». Если производитель = бренды, вы можете добавить это l oop, чтобы прокрутить их:

foreach ($product_ids as $test_id) { 
$post = get_post($test_id); 
echo '>> ' . $post->post_name . '</br>'; 
$aaa = wp_get_post_terms($test_id, 'manufacturer', 
    array('fields' => 'id=>slug'));

foreach( $aaa as $a) {
    echo $a . '</br>';
    }

}

Затем вы можете добавить операторы if для сравнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...