NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.
Publié le : 03 janvier 2018 - Modifié le : 17 janvier 2022
Temps de lecture : 2 minutes, 18 seconds - 234 mots
Partager la publication "Afficher les articles aimés par l’utilisateur – Compte Utilisateur"
Nous allons dans ce tutoriel afficher les articles aimés par l’utilisateur dans son compte user. Nous allons effectuer donc une requête, qui va nous permettre d’afficher les articles quand le post meta like et sa valeur sont égaux à l’ID de l’auteur WordPress.
Bien sur pour que cette fonction marche il faut un système qui nous permette de faire liker les articles par l’utilisateur. (Comme celui-ci)
Il faut aussi que vous proposiez un espace membre. Ne pas oubliez les conditions dans la page profil de l’utilisateur.
<?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly if ( is_user_logged_in()) : global $current_user; wp_get_current_user(); $user = $current_user->ID; ?>
Afficher les articles aimés par l’utilisateur
Dans un endroit de son compte utilisateur on affiche sa liste d’articles qu’il a aimé récemment. Construisons notre requête. Nous allons d’abord récupérer l’ID de l’utilisateur get_current_user_id() par la session get_currentuserinfo() de WordPress. Ensuite la variable WordPress $types va récupérer le type de Post demandé (Dans l’exemple c’est Listings. Le changer par votre Post Type ou par post pour vos articles). On n’en affiche 10 et on n’effectue une meta_query qui correspondra à l’ID de l’auteur et à la clé du post meta.
Puis nous effectuons notre boucle. Nous donnons un classement incrémenté avec le $i. Voici notre requête.
(La clé _user_liked doit être changée par votre clé post meta correspondante au j’aime)
<?php $author_id = get_current_user_id(); $types = 'listings'; $args = array( 'numberposts' => '10', 'post_type' => $types, 'meta_query' => array ( array ( 'key' => '_user_liked', 'value' => $author_id, 'compare' => 'LIKE' ) ) ); $like_query = new WP_Query( $args ); if ( $like_query->have_posts() ) : ?> <ul class="user-likes"> <?php $i = 1; while ( $like_query->have_posts() ) : $like_query->the_post(); ?> <li> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <?php echo $i; ?> <?php _e('-'); ?> <?php the_title(); ?> </a> </li> <?php $i++; endwhile; ?> </ul> <?php else : ?> <p><?php _e( 'Pas de J'aime', 'via-entreprises' ); ?></p> <?php endif; wp_reset_postdata(); ?>
NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.