2013-06-25 16 views
5

投稿IDを指定してカテゴリのカテゴリ名を取得することは可能ですか?次のコードはカテゴリIDを取得するために機能しますが、どのようにして名前を取得できますか?カテゴリを取得する投稿ID

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

ありがとう!

答えて

16

<?php get_the_category($id) ?> 

行いませんちょうど、そのループの中に?外の場合

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

を返しますが、そのコードで投稿IDをどこで定義すればいいのですか? – user1937021

+0

私の編集した回答を見る –

+0

名前を取得するために配列を反復処理する必要はありませんが、動作します。 – Radmation

0

get_the_category()機能を使用してください。あなたは、配列

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

get_the_category

+0

私は結果をエコーし​​ますか? – user1937021

+0

@ user1937021出力を確認しましたか? – swapnesh

+0

はい@swapnesh出力は私にこの配列(0){}を与える – user1937021

5

を通じてあなたがループする必要があるポストのカテゴリの配列を返しますget_the_category($post->ID);を行くここ

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

それは私のための配列を返します - カテゴリーの名前ではありません – 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; 
} 

ここでは、データの受信の属性を渡すことができる機能wp_get_post_categories() の第2引数です。

$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>'; 

あなたは多分探しものです。

+0

ありがとう!!正確に私が必要としたもの - ループなし - もっときれい – Radmation

+0

ありがとう...それは投稿が投稿された投稿カテゴリ名を返します – TusharG

+0

それは本当に良いです。シングルポストテンプレートで。ニース。 – 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="" />'; 
      }  
} 
?> 
関連する問題