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?
/**
* 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.