Bonjour à tous,
j'aurais besoin d'un petit coup de main si cela ne dérange personne.

En fait, j'ai créé une sorte d'espace membre sous WordPress à l'aide de 2 extensions :

  • Login with Ajax pour un widget de connexion
  • Profil Builder pour créer une page de profil

Ce que je souhaiterai faire maintenant, c'est créer une nouvelle page permettant de récupérer, pour chacun des membres, ses articles publiés ainsi que ses commentaires postés.

Auriez-vous une petite idée ? J'ai pas mal cherché sur le web mais malheureusement je n'ai rien trouvé.

Merci d'avance pour vos réponses et bon week-end :)

9 réponses


spykrew07
Réponse acceptée
<?php
    if ( is_user_logged_in() ) {
    global $current_user;
    get_currentuserinfo();
    $pagination = (get_query_var('paged')) ? get_query_var('paged') : 1; // Ajouter cette ligne pour dire à Wordpress qu'on est sur la page 1
    query_posts('author='.$current_user->ID.'&posts_per_page=4&paged='.$pagination); // Ajouter paged=$pagination
?>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<!-- Mon contenu -->          

<?php
    endwhile;
    wp_pagenavi(); // Ajouter si le plugin wppagenavi est activé sinon mettre la pagination de wordpress par défaut
?>
<?php else: ?>

<p>Vous n'avez posé aucune question pour le moment !</p>

<?php endif; ?>

<?php wp_reset_query();
} 
else {
    echo 'Bonjour visiteur';
};
?>

Voila, j'espère que c'est assez clair ! Bonne chance :D

Tu dois faire un query post sur ton loop et préciser l'ID de l'auteur comme ça : <?php query_posts('author=1'); ?> pour récupérer les articles de l'auteur dont l'ID est 1. Après dans ton cas il faut que cet ID ce remplisse automatiquement en fonction de l'utilisateur connecté donc il faut utiliser la fonction : <?php get_currentuserinfo(); ?>.

<?php
    global $current_user;
    get_currentuserinfo();
    query_posts('author='.$current_user->ID);
?>

Bon courage ;)

jayzic
Auteur

Bonjour spykrew07,
merci pour ta réponse mais je n'arrive pas à mettre en place ma page même avec tes explications.

Tu vas dire que je ne me suis pas foulé mais pourtant si, j'ai simplement une expérience médiocre :)

En fait je souhaiterai lister les articles de chaque membres sur une page spéciale mais je n'arrive pas à afficher les titres des articles et rien du tout en fait ... J'aimerai également afficher les commentaires.

jayzic
Auteur

Bon finalement j'ai trouvé :)
Voici ce que j'ai utilisé :

<?php
    if ( is_user_logged_in() ) {
    global $current_user;
    get_currentuserinfo();
    query_posts('author='.$current_user->ID.'&posts_per_page=4');
?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!-- Mon contenu -->            
<?php endwhile; else: ?>
<p>Vous n'avez posé aucune question pour le moment !</p>
<?php endif; ?>
<?php wp_reset_query();
} 
else {
    echo 'Bonjour visiteur';
};
?>

Tout ceci fonctionne parfaitement mais maintenant, je me retrouve avec un autre problème !
Vous l'aurez peut-être remarqué, j'ai choisi de n'afficher que 4 articles par page mais je n'arrive pas à créer une pagination.

Pouvez-vous m'aider :)

Installe le plugin http://wordpress.org/extend/plugins/wp-pagenavi/ et tu rajoutes apres ton endwhile <?php wp_pagenavi(); ?> et ta pagination apparaîtra comme par magie ;)

jayzic
Auteur

C'est bien ça le problème :(

J'ai déjà essayé avec Page-navi (déjà installé) et aussi avec la fonction WordPress de base mais rien. En fait, il m'affiche bien la navigation mais lorsque je clic sur la page 2 par exemple, et bien le contenu reste le même !

jayzic
Auteur

Salut spykrew07,
merci beaucoup, ça fonctionne à la perfection ! Par contre, je crois qu'il y avait un petit problème dans ton code.

Tu as écrit :

query_posts('author='.$current_user->ID.'&posts_per_page=4&paged=$pagination');

Et apparemment pour que ça fonctionne il fallait écrire :

query_posts('author='.$current_user->ID.'&posts_per_page=4&paged='.$pagination);

Je suis content, j'ai réussi à trouver l'erreur tout seul :) Peut-être devrais-tu éditer ton code pour aider la prochaine personne ayant le même souci.

Encore merci beaucoup pour ton aide !
Bonne soirée ;)

Ah oui petite erreur d’inattention, c'est corrigé ! ;)

jayzic
Auteur

Merci encore ;)