web-dev-qa-db-ja.com

3.1のリンクなしのget_the_term_list

投稿に関連付けられたカスタム分類法をテキストとして表示する機能は何ですか。

私は現在get_the_term_listを使用していますが、これは単数ページには最適ですが、archive-postype.phpパーマリンクtitleタグで分類法を使用する場合はそれほど多くはありません。

12
torinagrippa

wp_get_object_terms()は、オブジェクト(例:投稿、ページ、カスタム投稿)に関連する用語をテキストとして(通常は配列に)返します。

From wp_get_object_terms()のCodexページ

$productcategories = wp_get_object_terms($post->ID, 'productcategories');

14
anu

しかし @anu は正しい、私はあなたが戻り値のタグを取り除くためにphp関数 strip_tags を呼び出すことができると思いました。

$terms = get_the_term_list( $post->ID, 'tags' );
$terms = strip_tags( $terms );
20
Zack

最良の方法は、用語リストにフィルターを実装することだと思います。これは、正規表現を介してテキストのみをリストから抽出します

get_the_terms_list()はここに実装されます: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-includes/category-template.php#L948

 $term_links = apply_filters( "term_links-$taxonomy", $term_links );

独自のフィルターを実装できます。

2
keatch

私は同じを必要とし、素晴らしい作品Zackのソリューションを試してみました。たとえば、CSS IDまたはクラスに入れる用語のみが必要な場合です。解決策についての唯一の注釈、関数の呼び出しは良くない、正しくは "get_the_term_list"です。

私の例を示します:

$terms = get_the_term_list( $post->ID, 'your_taxonomy_name' );
$terms = strip_tags( $terms );
0
$terms = wp_list_pluck( get_the_terms( get_the_ID(), 'your_taxonomy' ), 'name');

ここで$ termsは配列なので、foreachループを使用できます。

foreach( $terms as $term ) {
  echo $term;
}
0
Razor Khan