web-dev-qa-db-fra.com

Liste tous les articles commentés par l'utilisateur actuel

J'ai besoin d'une page pour afficher tous les messages (dans le type de message personnalisé Foods) contenant des commentaires de l'utilisateur connecté.

La liste doit simplement montrer le titre avec un lien vers le titre.

Est-ce possible?

Ce que j'ai essayé jusqu'à présent:

<?php if (is_user_logged_in() ) : ?>

<?php
        if ( is_user_logged_in()) {

        global $current_user;
        get_currentuserinfo();

        $args=array(
            'post_type' => 'foods',
            'posts_per_page' => 5,
        );
        $my_query = null;
        $my_query = new WP_Query($args);
        if( $my_query->have_posts() ) {
        echo 'Your Comments';
        while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
        <?php
        endwhile;
        }
        wp_reset_query();  // Restore global post data stomped by the_post().
        }
    ?>
<?php endif; ?> 

Mais bien sûr, je n'ai pas encore utilisé $ current_user-> ID . Je ne sais pas encore comment l'utiliser ici.

2
Bernie

Si nous voulons éviter les filtres et les requêtes SQL manuelles, nous pourrions essayer (non testé):

$args = array(
    'post_type'      => 'foods',
    'posts_per_page' => 5,
    'post__in' => array_unique( 
         wp_list_pluck( 
            get_comments( array(
                'user_id' => get_current_user_id() 
                )
            ),       
            'comment_post_ID' 
         )
    ),
);
$my_query = new WP_Query( $args );
3
birgire