Obține numele categoriei din ID-ul postului (Programare, Php, WordPress, Categorii)

user1937021 a intrebat.

Este posibil să obțineți numele unei categorii având în vedere ID-ul postului, următorul cod funcționează pentru a obține ID-ul categoriei, dar cum pot obține numele?

<?php $post_categories = wp_get_post_categories( 4 ); echo $post_categories[0]?>

Mulțumesc!

6 răspunsuri
M Khalid Junaid

aici aveți get_the_category( $post->ID ); va returna array-ul de categorii ale acelei postări trebuie să faci o buclă prin array-ul respectiv

$category_detail=get_the_category('4');//$post->ID
foreach($category_detail as $cd){
echo $cd->cat_name;
}

get_the_category

Comentarii

  • mulțumesc, dar unde să definesc ID-ul postului în acel cod, pentru care vreau numele categoriei. –  > Por user1937021.
  • Nu-mi place cum trebuie să iterați peste array pentru a obține numele, dar funcționează. –  > Por Radmation.
kaimagpie
echo '<p>'. get_the_category( $id )[0]->name .'</p>';

este ceea ce poate căutați.

Comentarii

  • MULȚUMESC!!! Exact ceea ce aveam nevoie – fără bucle – mult mai frumos –  > Por Radmation.
  • Mulțumesc … Se returnează numele categoriei de post pe care ne aflăm –  > Por TusharG.
  • este foarte bun, dacă nu este nevoie să folosiți bucla, de exemplu, în șablonul de post unic. Frumos. –  > Por Marek.
  • Vă mulțumim pentru asta. Cel mai simplu răspuns. –  > Por Khom Nazid.
Kortschot

nu

<?php get_the_category( $id ) ?>

face exact asta, în interiorul buclei?

Pentru exterior:

<?php
global $post;
$categories = get_the_category($post->ID);
var_dump($categories);
?>

Comentarii

  • Asta îmi returnează o matrice – nu numele categoriei.  > Por Radmation.
  • cum se poate transforma Array-ul de categorii într-un String? –  > Por vsync.
Nuker
function wp_get_post_categories( $post_id = 0, $args = array() )
{
   $post_id = (int) $post_id;
   $defaults = array('fields' => 'ids');
   $args = wp_parse_args( $args, $defaults );
   $cats = wp_get_object_terms($post_id, 'category', $args);

   return $cats;
}

Aici este al doilea argument al funcției wp_get_post_categories() pe care puteți trece atributele datelor primite.

$category_detail = get_the_category( '4',array( 'fields' => 'names' ) ); //$post->ID
foreach( $category_detail as $cd )
{
   echo $cd->name;
}

Comentarii

  • Prefer metoda ta (prima pe care ai făcut-o) pentru că poți trece orice taxonomie în care dorești. Implicit fiind „category”, desigur, dar dacă aveți tipuri de post personalizate și taxonomii personalizate, atunci răspunsul acceptat la această întrebare OP nu va fi de fapt suficient. get_the_category() va căuta doar taxonomia „category”. În timp ce metodei dvs. postate i se poate transmite taxonomia. Bine jucat, domnule. –  > Por mrwpress.
swapnesh

Utilizați get_the_category() funcția.

$post_categories = wp_get_post_categories( 4 );
$categories = get_the_category($post_categories[0]);
var_dump($categories);

Comentarii

  • @user1937021 ați verificat rezultatul ??? –  > Por swapnesh.
  • este un id de post ??? $post_categories[0]) ?? –  > Por swapnesh.
  • Ei bine, 4 este ID-ul postului pentru care vreau să aflu categoria –  > Por user1937021.
  • Aceasta returnează o matrice –  > Por Radmation.
Heniek
     <?php  
     // in woocommerce.php
     $cat = get_queried_object();
     $cat->term_id;
     $cat->name;
     ?>

    <?php
    // get product cat image
        if ( is_product_category() ){
            $cat = get_queried_object();
            $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
            $image = wp_get_attachment_url( $thumbnail_id );
            if ( $image ) {
                echo '<img src="' . $image . '" alt="" />';
            }       
}
?>