最初の投稿用語を取得する


10

カスタム投稿タイプの最初の用語のみを取得するにはどうすればよいですか。
私はすべてを得ることができます-問題ありません。これらすべてをつかむために私が使用しているもの

<?php foreach ($terms as $term) {echo '<a href="'.get_term_link($term->slug, 'sitecat').'">'.$term->name.'</a>,';} ?> >> <a href="<?php the_permalink(); ?>"><?php the_title('', ''); ?></a></h2></span>

私のコードを使用して答えをいただければ幸いですが、どんな助けでも大歓迎です

回答:


23

「最初の」分類法で何を意味しているのかわかりませんが、

$terms = get_the_terms( $post->ID, 'mytaxonomy' );

分類用語オブジェクトの配列を返すので、

$term = array_pop($terms);

配列の最初の項が表示されます。その後:

echo '<a href="'.get_term_link($term->slug, 'mytaxonomy').'">'.$term->name.'</a>,'

(空の配列またはエラーが返された場合に備えて、いくつかのifステートメントを含めることができます(を参照is_wp_error


これを試してみました。エラーが発生しました:キャッチ可能な致命的なエラー:クラスWP_Errorのオブジェクトを/home/content/14/6469114/html/wp-content/themes/sagive/single-website.phpの行で文字列に変換できませんでした40
Sagive SEO 2012

40行目:<?php $ terms = get_the_terms($ post-> ID、 'sitecat'); array_pop($ terms); echo '<a href="'.get_term_link($term-> slug、' sitecat ')。' "> '。$ term-> name。' </a> '; ?>
Sagive SEO 2012


4

PHP 5.4以降では、配列を直接逆参照できるため、最初の項を取得するには、単純に行うことができます。

$first_term = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0];
var_dump( $first_term );

最初の用語の特定のプロパティ(用語名など)が必要な場合は、次の操作を実行できます

$first_term_name = get_the_terms( $post->ID, 'TAXONOMY_NAME' )[0]->name;
var_dump( $first_term_name );

編集

ただの注意ですがWP_Error、分類法が無効な場合にオブジェクトを取得するため、これには欠点があります。また、返された配列が空の場合、未定義の配列キーの警告も表示されるので、注意して使用してください。


0

それは私のために働いた。アンカーではなく、最初のカテゴリのみをテキストとして表示します。

$terms = get_the_terms( $post->ID , 'your_custom_taxonomy' ); 
foreach( $terms as $term ) { 
    print $term->name;
    break;
    unset($term);
}

1
「あなたのために働いた」とは何ですか?サイドノート:break;はステートメントを本当に停止し、unsetトリガーされることはなく、最初のアイテムのみが処理されます。
カイザー2014年

unset( $term );する必要があります後にあなたのforeachループではなく、内部で :-)それ
ピーター・グーセン

0

オブジェクトのキーに直接アクセスするのはどうですか?

$terms = get_the_terms( $post->ID, 'sitecat' );
$first_term = $terms[0];

そのため、オブジェクトにアクセスできます。

echo $first_term->name;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.