web-dev-qa-db-fra.com

Obtenir les termes d'une taxonomie personnalisée pour un auteur spécifique dans un modèle d'auteur

J'utilise un type d'article personnalisé sur mon site Web et une taxonomie personnalisée.

Un auteur sélectionne un ou plusieurs termes avant de publier son article.

Mon objectif est d’afficher les pages d’auteurs au début, c’est pourquoi j’utilise le fichier modèle author.php. Ce fichier affiche par défaut les archives des publications de l'auteur spécifique. Comment puis-je ajouter à ce fichier la liste des termes de taxonomie personnalisés pour les publications publiées par l'auteur?

Je donne l'exemple suivant si je n'ai pas été clair dans mon explication:

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.

C'est exactement le même principe que dans la page utilisateur dans l'échange de pile. Comme vous pouvez le constater, il existe une liste de balises pour chaque utilisateur, qui sont des balises de publications dans lesquelles l'utilisateur a contribué.

Merci pour votre aide habituelle.

Commencez par obtenir une liste des publications de l’auteur, puis parcourez chacune des publications et obtenez les termes utilisés 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