web-dev-qa-db-fra.com

Comment compter les pages de l'utilisateur actuel?

Il y a beaucoup de réponses sur la façon de compter les messages des utilisateurs en utilisant:

<?php
    if ( is_user_logged_in() ) {
        global $wpdb;
    $user = wp_get_current_user();
    $where = get_posts_by_author_sql( 'page', true, $user->ID );
    $count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" ); ?>

//option 1
<h2>Hey <?php echo $current_user->display_name ?>, check your page here: {page title with link to page} </h2>

<?php } else { ?>
//option 2
<h2>Welcome <?php echo $current_user->display_name ?>, etc.. text with tags etc.</h2>

<?php } } else { ?>
//option 3
<h2>text with tags etc.</h2>

<?php } ?>

Mais puisque les utilisateurs peuvent également créer des pages, comment obtenir le nombre de pages de l'utilisateur actuel dans une situation similaire à celle du code ci-dessus?

3
tobe

Regardez ce que count_user_posts() fait à l'intérieur et modifiez le paramètre post type:

global $wpdb;
// 'page' is the important part here
$where = get_posts_by_author_sql('page', true, $userid);
$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );

Ensuite, modifiez votre extrait en:

global $wpdb;
$user = wp_get_current_user();
$where = get_posts_by_author_sql( 'page', true, $user->ID );
$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );

if ( $count >= 1 ) {

    // echo your text snippet

} else {

    // echo your form

}
3
fuxia