web-dev-qa-db-fra.com

Comment afficher la taxonomie d'un type d'article personnalisé dans un tableau

J'essaie d'afficher les termes d'une taxonomie sur ma page d'archives, mais j'ai du mal à afficher les termes nom, voici ce que j'ai jusqu'à présent:

if ($post->post_type == 'cpt_saving') {
   $categories = get_the_terms($post->ID, 'cpt_saving-type');
   if ($categories) {
       $categories['name'];
   }
   $stack = [
        'title' => get_field('savings_headline', $post_id),
        'image' => get_field('savings_supplier_logo', $post_id),
        'reference' => get_field('savings_reference', $post_id),
        'date' => get_the_date('l j F Y'),
        'link' => get_the_permalink(),
        'term' => $categories->name,
    ];
    get_template_partial('partials/savings/savings-item', $stack);
}

Comme j'ai $ stack comme tableau, comment appellerais-je le nom de taxonomie pour l'afficher au début?

1
Neelam Khan

J'ai été en mesure d'afficher le terme de taxonomie pour chaque article en utilisant les éléments suivants:

$savings_terms = get_the_term_list($post->ID, 'cpt_saving-type');

$stack = [
  'term' => strip_tags($savings_terms),
];

Cette sortie affiche le terme actuel pour chaque message et ne génère pas d'erreur lorsqu'un message ne comporte pas de terme, cela fonctionnait mieux pour ma situation.

0
Neelam Khan

Comme cela a déjà été noté, vous pouvez le faire en effectuant une itération sur chacun des termes qui sont WP_Term objets. Chacun de ces WP_Term objets a une propriété namename__. Donc, vous le feriez comme ça:

$terms = get_the_terms( $post->ID, 'cpt_saving-type' );
$terms = is_array( $terms ) ? $terms : array();

foreach ( $terms as $term ) {
    echo $term->name.'<br />'; // Outputs each name.
}
0
jaswrks