web-dev-qa-db-fra.com

Affiche le nombre total de publications attribuées à un terme de taxonomie personnalisé par l'auteur

J'ai attribué une taxonomie personnalisée nommée Highlight à des publications et j'y ai ajouté un terme nommé Featured.

Chaque fois que je veux mettre en avant un article, je l'assigne simplement à l'article en vedette.

À chaque auteur, je souhaite afficher le nombre total de publications en vedette.

Ainsi, la fonction the_author_posts() affichera le nombre total de messages. Je souhaite afficher le nombre total de publications présentées à l'auteur.

Comment puis-je faire ceci?

2
Jocob
/**
 * Get the author post count for a tax query.
 *
 * @link    http://wordpress.stackexchange.com/q/159160/1685
 *
 * @param   array   $tax_query
 * @return  int
 */
function wpse_159160_get_author_posts_by_tax( $tax_query ) {
    global $wpdb;

    $where = get_posts_by_author_sql( 'post', true, get_post()->post_author );

    $tax_query = new WP_Tax_Query( $tax_query );
    $sql = $tax_query->get_sql( $wpdb->posts, 'ID' );

    return ( int ) $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts {$sql['join']} $where {$sql['where']}" );
}

Et en usage:

$count = wpse_159160_get_author_posts_by_tax(
    array(
        array(
            'taxonomy' => 'highlight',
            'terms'    => 'featured',
            'field'    => 'slug',
        )
    )
);

echo "$count Featured Posts";

Si vous vouliez moins de contrôle avec la fonction (code de modèle plus simple), vous pouvez coder en dur l'argument $tax_query dans la fonction et simplement l'appeler sans arguments ailleurs.

1
TheDeadMedic