こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

[wordpress] 固定ページで、カテゴリ名の

[wordpress] 固定ページで、記事の一覧を表示し、その記事の属するカテゴリ名の表示

wordpressで、商品一覧ページを作成していて、一覧を表示するページは固定ページにしています。
その商品一覧の中で、記事(商品)の属するカテゴリ名を表示させたいのですが
どうすればいいでしょうか?
商品が服なので、その商品が属するカテゴリを項目の一つとして出力したいのです。
つまり『抽出した商品毎(have_post()の出力結果)にカテゴリ名を抽出』という感じです。
具体的なソースも教えて頂けると助かります。
<?php the_category(); ?> はダメでした。

[参考ソース]
<div id="collectionWrap" class="clearfix">
<?php $loop = new WP_Query( array( 'post_type' => 'collection', 'posts_per_page' => 8 ) );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="collection">
<div class="image">
<a href="<?php the_permalink() ?>"><?php echo wp_get_attachment_image(get_post_meta($post->ID,"画像",true),'medium' ); ?></a>
</div>
<div class="txt">
<div class="clearfix mb10">
<p class="upDate"><?php echo get_post_meta($post->ID,"性別",true); ?></p>
<p class="seasons">
<span>
/*ここにカテゴリの種類を出力 */
</span></p>
</div>
<p class="itemName"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></p>
<p class="itemPrice">&yen;&nbsp;<?php echo get_post_meta($post->ID,"価格",true); ?></p>
</div>
</div>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
</div>

どうかよろしく御願いします。足りない情報等あればおっしゃってください。
自分でもいろいろ調べてるのですが、わかりません。。急いでます。

投稿日時 - 2012-01-28 21:00:23

QNo.7272007

すぐに回答ほしいです

質問者が選んだベストアンサー

the_cateory(); と同等のことがしたいのなら、

<?php
$taxononies = get_the_term_list( $post->ID, 'collection_category', '', ', ', '' );
if ( $taxononies ) echo $taxononies;
?>

リンクが不要なら、get_the_terms(); でタームオブジェクトを取得し、ループを回して名前を出力すればOKです。

関数の中の「the」 というのが、「そのポストの」という意味です。ループの中で使う関数には、たいてい「the」がついています。

投稿日時 - 2012-01-29 00:49:45

お礼

できました!本当にありがとうございます。
理解はまだ出来てませんがとりあえず前に進めそうです。
感謝です!

投稿日時 - 2012-01-29 01:28:26

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

あっと、変数名は、
$taxononies
よりは、
$terms
の方がいいですね。

投稿日時 - 2012-01-29 01:05:33

ANo.2

http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9

ここの「タクソノミー」の関数を調べていけばわかります。

投稿日時 - 2012-01-28 23:53:50

補足

ありがとうございます。参考にしました。
<?php
$term_obj_list = get_terms('collection_category');
foreach($term_obj_list as $term_obj) :
$title = esc_html($term_obj->name);
echo "$title" ; ?>
<?php endforeach;?>

これでやってみたらカテゴリ名は出力されたんですが、登録されているカテゴリ名すべてが表示されてしまいました。。
なかなかうまいこといきません。。もう少しお力添え御願い出来ますでしょうか。。

[function.php]

/*COLLECTION*/
function collection_custom_post_type()
{
$labels = array(
'name' => _x('商品', 'post type general name'),
'singular_name' => _x('商品', 'post type singular name'),
'add_new' => _x('商品を追加', 'blog'),
'add_new_item' => __('新しい商品を追加'),
'edit_item' => __('商品を編集'),
'new_item' => __('新しい商品'),
'view_item' => __('商品を編集'),
'search_items' => __('商品記事を探す'),
'not_found' => __('商品記事はありません'),
'not_found_in_trash' => __('ゴミ箱に商品記事はありません'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => 5,
'supports' => array('title','editor'),
'has_archive' => false /* アーカイブ生成 */
);
register_post_type('collection',$args);

//カテゴリータイプ
$args = array(
'label' => 'カテゴリー',
'public' => true,
'show_ui' => true,
'hierarchical' => true,
);
register_taxonomy('collection_category','collection',$args);

}
add_action('init', 'collection_custom_post_type');

?>

投稿日時 - 2012-01-29 00:32:32

ANo.1

カスタム投稿タイプ collection を分類しているのは、本当にカテゴリー(category) なのですか?
タクソノミーで分類してるのなら、<?php the_category(); ?> では取得できません。

投稿日時 - 2012-01-28 23:18:59

補足

ありがとうございます。分類しているのはカスタムタクソノミーです。
どうすればよいでしょうか??

投稿日時 - 2012-01-28 23:28:09

あなたにオススメの質問