2013-06-25 9 views
5

Ist es möglich, den Kategorienamen einer Kategorie mit der Post-ID zu erhalten, funktioniert der folgende Code, um die Kategorie-ID zu erhalten, aber wie kann ich den Namen bekommen?Name der Kategorie von Beitrags-ID

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

Vielen Dank!

Antwort

16

hier Sie get_the_category($post->ID); gehen die Reihe von Kategorien von diesem Posten zurückkehren Sie eine Schleife durch das Array benötigen

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

get_the_category

+0

Dank, aber wo definiere ich die Post-ID in diesem Code, dass ich die Kategorie Name von wollen. – user1937021

+0

sehe meine bearbeitete Antwort –

+0

Ich mag es nicht, wie Sie über das Array iterieren müssen, um den Namen zu erhalten, aber es funktioniert. – Radmation

0

Verwenden Sie get_the_category() Funktion.

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

cool, aber wie kann ich das Ergebnis widerspiegeln? – user1937021

+0

@ user1937021 haben Sie den Ausgang überprüft? – swapnesh

+0

ja @swapnesh die Ausgabe gibt mir dieses Array (0) {} – user1937021

5

nicht

<?php get_the_category($id) ?> 

tun nur das, innerhalb der Schleife?

Für Außen:

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

Das gibt ein Array für mich zurück - nicht der Name der Kategorie – Radmation

1
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; 
} 

Hier ist das zweite Argument der Funktion wp_get_post_categories() , die Sie die Attribute Empfangen von Daten passieren können.

$category_detail = get_the_category('4',array('fields' => 'names')); //$post->ID 
foreach($category_detail as $cd) 
{ 
    echo $cd->name; 
} 
8
echo '<p>'. get_the_category($id)[0]->name .'</p>'; 

ist, was Sie vielleicht gesucht haben.

+0

DANKE !! Genau das, was ich brauchte - keine Schleifen - viel schöner – Radmation

+0

Danke ... Es gibt den Post-Kategorie-Namen, auf dem Post – TusharG

+0

ist es wirklich gut, wenn keine Notwendigkeit, Schleife, z. in Einzelpostvorlage. Nett. – Marek

0
 <?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="" />'; 
      }  
} 
?>