Je dois afficher une statistique de mini-auteur dans la barre latérale de la page des publications. J'utilise le widget de code PHP pour me permettre d'insérer du code PHP dans un widget. Ce que j'ai fait est de lancer une boucle dans la barre latérale comme ceci:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<ul>
<li>
<?php echo 'Posts made: ' . get_usernumposts(4); ?>
<p>
Author Rank: <?php the_author_meta('user_level'); ?>
<br>
Author's Name: <?php the_author_meta('display_name'); ?>
<br>
User ID: <?php the_author_meta('ID'); ?>
</p>
</li>
<?php endwhile; else: ?>
<p><?php _e('No posts by this author.'); ?></p>
<?php endif; ?>
Cela indique donc le nombre de publications d'utilisateurs pour l'identifiant de l'auteur '4'. Et oui, la fonction fonctionne toujours correctement même si elle est déconseillée.
J'ai évidemment besoin de quelque chose d'un peu plus dynamique, car les données de l'auteur varient d'une publication à l'autre, de sorte qu'un identifiant statique ne fera pas l'affaire. Je ne sais pas pourquoi il n'y a pas quelque chose comme
<?php the_author_meta('post_count'); ?>
Je suppose que ce serait trop pratique. J'ai vu beaucoup de requêtes qui sélectionnent les messages de différentes manières, toutes ne correspondant pas à mes besoins ou ne fonctionnant pas dans la boucle située dans la barre latérale.
Ma première pensée, bien que je ne sois pas un expert avec PHP, consiste à affecter une variable à la valeur de usernumposts qui extrait les données de la valeur de
<?php the_author_meta('ID'); ?>
Je ne sais pas si cela est possible, mais cela permettrait certainement d'atteindre mes objectifs. Alors cela peut-il être fait? Comment? Et si non, quelles sont mes autres options?
Merci!
Pour obtenir le nombre de publications publiées par un utilisateur, j’ai trouvé que la solution consistait à appeler count_user_posts()
en lui transmettant l’ID utilisateur approprié.
<?php echo 'Posts made: ' . count_user_posts( get_the_author_meta('ID') ); ?>
Sous forme prête à la traduction.
<?php printf( 'Posts made: %d', count_user_posts( get_the_author_meta('ID') ) ); ?>
Stockage dans une variable.
<?php $user_post_count = count_user_posts( get_the_author_meta('ID') ); ?>