web-dev-qa-db-ja.com

カスタム投稿タイプの分類値を取得する方法

関連付けられた分類値を含む、すべてのカスタム投稿タイプ(ケーススタディ)のコンテンツを取得する新しいテンプレートを作成しています。

これまでのところ、私は以下を得ました:

<section>
<h1><?php _e( 'posts', 'casestudies' ); ?></h1>
<?php get_template_part('loop'); ?>
<?php
$args = array('post_type' => 'casestudies', 'posts_per_page' => 3);
$query = new WP_Query($args);
while($query -> have_posts()) : $query -> the_post();
?>
<h2><?php the_title(); ?></h2>
<p>Meta: <?php the_meta(); ?></p>
<p>Excerpt: <?php the_excerpt(); ?></p>
<p>what_to_put_here_to_get_taxonomies_values????</p>
<?php endwhile; ?>

<?php get_template_part('pagination'); ?>
</section>

どのように分類するのですか?私は複数のことを試しましたが、すべてが失敗したようで、混乱してしまいました。

9
user2091936

この関数を確認してください:wp_get_post_terms()

カスタム投稿タイプを想定すると、ケーススタディcountrysubjectと呼ばれる2つの分類法をサポートします、次のようなものを試すことができます:

<?php $terms = wp_get_post_terms( $query->post->ID, array( 'country', 'subject' ) ); ?>
<?php foreach ( $terms as $term ) : ?>
<p><?php echo $term->taxonomy; ?>: <?php echo $term->name; ?></p>
<?php endforeach; ?>

出力は次のようになります。

Country: United Kingdom
Subject: Biology
Subject: Chemistry
Subject: Neurology
9
MikO

仮定:カスタム投稿タイプ名publication_categoryで分類を登録します。

カスタム投稿タイプテンプレートに次のように記述します。

$terms = get_the_terms( $post->ID, 'publication_category' );
if ($terms) {
    foreach($terms as $term) {
      echo $term->name;
    } 
}
4
Nurealam Sabbir

<?php get_taxonomies() ?>を使用してみましたか?

特定の分類法を探しているその関数にオプションの引数がある場合、出力を制御するために渡すことができます。ここのドキュメントを参照してください: http://codex.wordpress.org/Function_Reference/get_taxonomies

2
Ollo

誰かを助けることができる場合に備えて、カスタム投稿タイプのループ内で「the_taxonomies()」関数を使用しました。

        <?php

        while ( have_posts() ) : the_post();    
          $custom_post = get_post_meta( get_the_ID() );       
          //
        ?>

        //html
        //and stuff

        <?php the_taxonomies(); ?>

        <?php
          endwhile;
        ?>


 the result was:

   Taxonomy-name: {Taxonomy-term}. <-- as a link
1
Ed Vieira