web-dev-qa-db-ja.com

著者テンプレートで特定の著者のカスタム分類の用語を取得する

私は私のウェブサイトでカスタムの投稿タイプとそのためのカスタム分類法を使っています。

著者はその投稿を公開する前に1つまたは複数の用語を選択します。

私の目標はフロントエンドに著者ページを表示することですので、私はauthor.phpテンプレートファイルを使用しています。このファイルはデフォルトで特定の作者によって書かれた投稿のアーカイブを表示します。著者が投稿した投稿のカスタム分類法の用語のリストをこのファイルに追加する方法を教えてください。

説明が明確でない場合は、次の例を参考にしてください。

if Author-x has published:

**post1** with term1 , term2, term3
**post2** with term2, term5
**post3** with term1


then, in Author-x page I will have : term1, term2, term3, term5.

これはスタック交換のユーザーページとまったく同じ原則です。ご覧のとおり、ユーザーが投稿した投稿のタグである、各ユーザーのタグのリストがあります。

いつも助けてくれてありがとう。

最初に著者の投稿のリストを取得し、次に各投稿をループ処理してexで使用されている用語を取得します。

function list_author_used_terms($author_id){

    // get the author's posts
    $posts = get_posts( array('post_type' => 'custom_post_type_name', 'posts_per_page' => -1, 'author' => $author_id) );
    $author_terms = array();
    //loop over the posts and collect the terms
    foreach ($posts as $p) {
        $terms = wp_get_object_terms( $p->ID, 'taxonomy_name');
        foreach ($terms as $t) {
            $author_terms[] = $t->name;
        }
    }
    return array_unique($author_terms);
}

//usage
echo implode(", ",list_author_used_terms(1));
2
Bainternet