web-dev-qa-db-fra.com

Vérification est l'utilisateur auteur du nombre de messages?

J'ai cette fonction ...

$user = wp_get_current_user();
if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) {
    /* Is subscriber, is in category Locked, has amount of posts */
    echo do_shortcode('[shortcode_name]');

} else if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) {
    /* Is subscriber, is in category Locked, has NO amount of posts */
    echo '<div id="locked">
You are subscriber without number of posts!
</div>';

} else if ( in_category('Locked') ) {
    /* Is NOT subscriber, is in category Locked, has NO amount of posts */
    echo '<div id="locked">
Login or register pal!
</div>';

} else { 
    /* Is NOT subscriber, is NOT in category Locked, has NO amount of posts */
    echo do_shortcode('[shortcode_name]'); 
}

J'ai besoin d'appliquer "a le nombre de messages" ou "vérifier si l'utilisateur est l'auteur du numéro de message" sur la première partie du code ...

if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) && ?????

Si cette méthode ne fonctionnait pas, j’aurais une solution supplémentaire possible, c’est de déplacer automatiquement l’utilisateur d’abonné en contributeur une fois que l’abonné a affiché le nombre de publications, mais cette première solution serait préférable.

1
MLL

Je suppose que count_user_posts est ce que vous cherchez;)

Voici comment vous l'utilisez:

$user_post_count = count_user_posts( $userid , $post_type );

Et il renvoie le nombre de publications publiées que l'utilisateur a écrites dans ce type de publication.

PS Et si vous voulez un nombre plus avancé, get_posts_by_author_sql peut être assez pratique.

2
Krzysiek Dróżdż

Le gars ci-dessus a répondu correctement, mais pour tous ceux qui en ont besoin, je vais ajouter le code complet en réponse aussi ...

$user = wp_get_current_user();
$user_ID = get_current_user_id();
$user_post_count = count_user_posts( $user_ID );
$my_post_meta = get_post_meta($post->ID, 'shortcode_name', true);


if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) && $user_post_count == 5 ) {
    /* Is subscriber, is in category Locked, has amount of posts */
    echo do_shortcode('[shortcode_name]');

} else if (( in_category('Locked') ) && in_array( 'subscriber', (array) $user->roles ) ) {
    /* Is subscriber, is in category Locked, has NO amount of posts */
    echo '<div id="locked">
You are subscriber without number of posts!
</div>';
} else if (( in_category('Locked') ) && in_array( 'administrator', (array) $user->roles ) ) {
    /* Is subscriber, is in category Locked, has power */
echo do_shortcode('[shortcode_name]'); 

} else if ( in_category('Locked') ) {
    /* Is NOT subscriber, is in category Locked, has NO amount of posts */
    echo '<div id="locked">
Login or register pal!
</div>';

} else if ( ! empty ( $my_post_meta ) ) { 
    /* Post meta exist */
echo do_shortcode('[shortcode_name]'); 


} else { 

    /* Is NOT subscriber, is NOT in category Locked, has NO amount of posts */
    /* Post meta NOT exist */
    echo do_shortcode('[shortcode_name_1]'); 
}
1
MLL