web-dev-qa-db-ja.com

カスタム投稿タイプ内にある場合は現在の分類用語を表示

これはかなり簡単なはずですが、Web上のどこにも答えが見つかりませんでした。私が見つけたすべての答えは親密​​でしたが、私が必要としたものとは正確には一致しませんでした。私が必要としているのは、私がいるカスタム投稿タイプの現在の用語だけを表示することです すべての用語が1つだけではありません! (関連するもの)

これは私が使っているものですが、それは私にとって良くないすべての用語を表示します:

<?php
$taxonomy = 'genre';
$queried_term = get_query_var($taxonomy);
$terms = get_terms($taxonomy, 'slug='.$queried_term);
if ($terms) {
  foreach($terms as $term) {
    echo $term->name;
  }
}
?>

覚えておいてください - 私は私の単一の投稿タイプのテンプレートにそれを表示したいのですが誰でも提案できますか?ありがとう

4
gil hamer

さて、それで私はここで私が必要としているものをついに見つけました: WordPressの私のカスタム分類学で現在の用語を取得する方法?

最後の更新は@ user3208によるものです。

<?php   // Get terms for post
 $terms = get_the_terms( $post->ID , 'oil' );
 // Loop over each item since it's an array
 if ( $terms != null ){
 foreach( $terms as $term ) {
 // Print the name method from $term which is an OBJECT
 print $term->slug ;
 // Get rid of the other data stored in the object, since it's not needed
 unset($term);
} } ?>

これで私の問題は解決しました!ありがとう

11
gil hamer

代わりに wp_get_post_terms を使用してください。

$terms = wp_get_post_terms( $post_id, $taxonomy, $args );

get_terms は分類法に存在するすべての用語をあなたに与えます。

更新:

global $post;
$terms = wp_get_post_terms( $post->ID, 'genre');
print_r($terms); #displays the output
4
RRikesh

User3208がコーディングしたものを取り上げて、URLを用語に追加するコードを少し追加しました。それが誰かに役立つことを願っています。

<?php   // Get terms for post
$terms = get_the_terms( $post->ID , 'oil' );
// Loop over each item since it's an array
if ( $terms != null ){
foreach( $terms as $term ) {
$term_link = get_term_link( $term, 'oil' );
 // Print the name and URL
echo '<a href="' . $term_link . '">' . $term->name . '</a>';
// Get rid of the other data stored in the object, since it's not needed
unset($term); } } ?>