WordPress: Показать категорию и ее детей

Я делаю список розничных продавцов для компании с такой структурой.
Что вы сначала перечислите страну, в которой есть города, в которых есть розничные продавцы.
Это связано с созданным мной пользовательским типом поста, который называется просто «Ритейлеры». Затем я создал таксономию для этого пользовательского типа поста, в котором страны являются родительскими элементами, а города — дочерними.

Country 1
-- City 1
--- Retailer 1
--- Retailer 2
-- City 2
--- Retailer 3
--- Retailer 4
Country 2
-- City 3
--- Retailer 5
-- City 4
---- Retailer 6

Дело в том, что я застрял и не могу отображать больше, чем просто города и их розничных продавцов, я хочу иметь возможность включать страны, чтобы они также отображались в цикле. Как я могу добавить в код, чтобы я мог получить родительский элемент из таксономии?

Это мой код для цикла

$args = array( 'post_type' => 'drsj_retailer', 'posts_per_page' => -1);
$loop = new WP_Query( $args );

$allCities = array();

while ( $loop->have_posts() ) : $loop->the_post();

$post_id = get_the_ID();
$args = array('orderby' => 'name', 'order' => 'ASC', 'fields' => 'all');
$terms = wp_get_post_terms( $post_id, 'retailer_city', $args );

$store = array();
$store['title'] = get_the_title();
$store['adress'] = get_field('reseller_adress');
$store['phone'] = get_field('reseller_phone');
$store['website'] = get_field('reseller_website');

$allCities[$terms[0]->name][] = $store;

endwhile;

foreach($allCities as $cityName => $stores) {
echo "<div class='resellerEntry'>";
echo "<h3 class='retailerCityTitle'>" . $cityName . "</h3>";

foreach($stores as $store) {
echo "<p>" . $store['title'] . "&nbsp;";
echo "" . $store['adress'] . "&nbsp;";
echo "" . $store['phone'] . "&nbsp;";
echo "<a href='http://" . $store['website'] . "' target='_blank'>" . $store['website'] . "</a></p>";
}

echo "</div>";
}

Изображение текущего списка:
введите описание изображения здесь

Изображение структуры таксономии:
введите описание изображения здесь

0

Решение

Попробуй это

<?php

//***----------------Parent cat args---------------------***/
$Parentcatargs = array(
'orderby' => 'name',
'order' => 'ASC',
'use_desc_for_title' => 1,
'hide_empty' => 0,
'parent' => 0
);

$category = get_categories($Parentcatargs);
//print_r($category); //Return Array

foreach ($category as $Parentcat) {

echo $Parentcat->name . "<br>";  //Get Parent Category Name

//***----------------child cat args---------------------***/
$childargs = array(
'child_of' => $Parentcat->cat_ID,
'hide_empty' => 0,
'parent' => $Parentcat->cat_ID
);


$childcategories = get_categories($childargs);
//print_r($childcategories); //Return Array

foreach ($childcategories as $childcat) {
echo $childcat->name . "<br>";  //Get child Category Name
}
}
?>

Полезная ссылка:https://codex.wordpress.org/Function_Reference/get_categories

1

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

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

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