Afișarea numelui categoriei pentru un tip de postare personalizat

22 mai 2015, 06:08:18
Vizualizări: 81.9K
Voturi: 5

Am o interogare personalizată în care afișez rezultatele postărilor dintr-un tip de postare personalizat numit "staff". Acest tip de postare personalizat este legat de o taxonomie personalizată numită "department". Pot afișa rezultatele, dar nu reușesc să afișez categoria care este asociată fiecărei postări.

Acesta este codul meu:

        <?php
          $args = array(
            'post_type' => 'staff', 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC',
            'tax_query' => array(
              array(
                'taxonomy' => 'departments',
                'field' => 'slug',
                'terms' => 'board'
              )
            )
          );
          $loop = new WP_Query( $args );
        ?>

        <?php if( $loop->have_posts() ): ?>

            <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

                    <p class="text-center name"><?php the_title(); ?></p>
                    <?php the_category(' '); ?>

            <?php endwhile; ?>        

        <?php endif; ?>

Cred că problema este că folosesc the_category dar nu sunt sigur.

Aveți idei ce ar putea fi greșit?

Mulțumesc!

1
Comentarii

Tipurile personalizate de postări nu au categorii. Se pare că doriți să obțineți termenii personalizați ai taxonomiei "departments". Cu toate acestea, interogarea dumneavoastră este deja setată să interogheze doar departamentul "board", așa că nu are rost să-l obțineți din nou. Dacă totuși doriți să-l obțineți, consultați funcția get_the_terms https://codex.wordpress.org/Function_Reference/get_the_terms

gdaniel gdaniel
22 mai 2015 06:39:34
Toate răspunsurile la întrebare 4
1
15

Deci asta era ceea ce aveam nevoie:

<?php
$terms = get_the_terms( $post->ID , 'board' );
foreach ( $terms as $term ) {
echo $term->name;
}
?>
22 mai 2015 06:42:13
Comentarii

MULȚUMESC! M-ai condus să îmi descopăr singur problema. Foarte apreciat.

Debbie Kurth Debbie Kurth
4 iul. 2019 19:55:36
0

folosește termeni astfel:

$terms = get_the_terms($post->ID, 'Introdu_taxonomia_aici');
if ($terms && ! is_wp_error($terms)) :
    $tslugs_arr = array();
    foreach ($terms as $term) {
        $tslugs_arr[] = $term->slug;
    }
    $terms_slug_str = join(" ", $tslugs_arr);
endif;
echo $terms_slug_str;
27 dec. 2016 00:51:14
1

În cazul în care cineva caută acest lucru în 2019. Cu acest cod obții numele TIPULUI DE POSTARE PERSONALIZATĂ (CUSTOM POST TYPE) împreună cu URL-ul său.

$terms = wp_get_post_terms( $post->ID, 'PUNE-AICI-TAXONOMIA-TA');
foreach ( $terms as $term ) {
  $term_link = get_term_link( $term );
  echo '<a href="' . $term_link . '">' . $term->name . '</a>' . ' ';
}
21 apr. 2019 07:50:40
Comentarii

Acesta ar trebui să fie răspunsul corect.

Nuno Sarmento Nuno Sarmento
20 nov. 2020 00:48:35
0

$categories = get_terms(array( 'taxonomy' => 'course_categories', 'hide_empty' => false, ));

        $output .= '<select name="category">';
        $output .= '<option value="">Selectează Categoria</option>';
        foreach ($categories as $category) {
            
            $output .= '<option value="' . $category->slug . '">' . $category->name . '</option>';
            
        }

if (!empty($category_data)) { // Dacă o categorie este selectată, filtrează după acea categorie $post['tax_query'] = array( array( 'taxonomy' => 'course_categories', 'field' => 'slug', 'terms' => $category_data, 'operator' => 'IN', ), ); }

6 dec. 2024 12:36:41