#php #wordpress
#php #wordpress
Вопрос:
Как я могу получить родительский и дочерний термин пользовательского типа post. У меня есть приведенный ниже код, который частично работает, проблема в том, что он не генерирует дочерний и родительский термины в одном и том же div, но в разных div как цикл. Из-за недостатка знаний о PHP я не совсем уверен, как это исправить.
Чего я хочу, если у меня есть родительский и дочерний элементы как;
- USA
- New York
Результат должен быть;
USA, New York
но с приведенным ниже кодом он генерирует как
,USA
,New York
Код;
<div class="address">
<?php
$terms = get_terms(array(
'taxonomy' => 'people-country',
'hide_empty' => false,
));
?>
<?php foreach ($terms as $term) : ?>
<?php
$re = explode('-', $term->name);
$args = array (
'post_type' => 'people', //
'posts_per_page' => 2,
'order' => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'people-country',
'field' => 'id',
'terms' => $term->term_id,
),
),
);
$query = new WP_Query( $args );
if( $query->have_posts() ){
while( $query->have_posts() ){
$query->the_post();
$title = get_the_title();
// $info = get_post_meta(get_the_ID(), '_post_info', true);
// $link = get_term_meta($term->term_id, 'link', true);
?>
<div class="text">
<span class="number"><?php echo ",".$re[0] ?>
</span>
</div>
<?php
}
}
endforeach; ?>
</div>
Комментарии:
1. Я надеюсь, что это поможет вам codex.wordpress.org/Function_Reference/_get_term_hierarchy
2. Спасибо @MadhuriPatel, я только что решил это
Ответ №1:
Я просто решил это, изменив его с помощью приведенного ниже кода;
<?php
$cats = get_the_terms(get_the_ID(), 'people-country');
$names = array();
if ($cats) foreach ($cats as $cat) {
if ($cat->parent) {
array_push($names, $cat->name);
}
}
if ($cats) foreach ($cats as $cat) {
if (!$cat->parent) {
array_push($names, $cat->name);
}
}
?>
<?php echo implode(', ', $names) ?>