3.1のリンクなしのget_the_term_list


13

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

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

回答:


15

wp_get_object_terms()は、オブジェクト(たとえば、投稿、ページ、カスタム投稿)に関連付けられた用語をテキスト(通常は配列)として返します。

wp_get_object_terms()のCodexページから

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


クエリ結果はのようにキャッシュされないことに注意してくださいget_the_terms()。詳細については、コーデックスのページご覧ください。
ディラン

22

ただし、@ anuが正しい場合、php関数strip_tagsを呼び出して、戻り値のタグを削除できることがわかりました。

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

とてもシンプルに見え、仕事をします。これを使用する欠点はありますか?
モーシン

@Mohsin欠点の1つは、<a>タグだけでなく、すべてのタグが削除されることです。:しかし、あなたはそうのように、取り除かれてから目的のタグを防ぐことができます$terms = strip_tags( $terms, '<li>' );
デビッド

2

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

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 );

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


0

私は同じものが必要で、うまく機能するZackソリューションを試しました。たとえば、CSS IDまたはクラスに入れる用語だけが必要な場合。解決策についての注釈は1つだけです。関数の呼び出しは不適切です。適切なのは「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;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.