it-swarm.com.de

Kommentare der Autoren auf der Profilseite anzeigen

Ich versuche, die Kommentare der Autoren auf ihrer Profilseite (author.php) anzuzeigen, aber beide Codes, die ich versucht habe, scheinen die Kommentare aller anzuzeigen. Auch der zweite Code soll auf den spezifischen Kommentar verweisen, tut aber nichts. Auch die Kommentar-ID ist bereits in der Kommentarausgabe enthalten und wird einwandfrei gedruckt. Jede Hilfe wird sehr geschätzt.

// Method 1
<ul class="authpcom">
<?php
$author_email = get_the_author_meta( 'user_email' ); 

$args = array(
    'author_email' => $author_email
);
$comments = get_comments($args);
foreach($comments as $comment) :
    echo('<a href=" ' . get_permalink($comment->post_ID) . ' " rel="external nofollow" title=" ' . $title . ' ">' .$title . '</a><br />' . $comment->comment_date . '<br /><li>' . $comment->comment_content . '</li>');
endforeach;
?>
</ul>


// Method 2
<?php   $comments = get_comments(); ?>
<ul id="recent_comments">
<?php foreach ($comments as $comment) { ?>
<li><p><strong><?php
        $title = get_the_title($comment->comment_post_ID);
        echo get_avatar( $comment, '45' );
echo strip_tags($comment->comment_author); ?></strong>&nbsp;commented on <a href="<?php echo get_permalink($comment->comment_post_ID); ?>#comment-<?php echo $comment->comment_ID; ?>" rel="external nofollow" title="<?php echo $title; ?>"> <?php echo $title; ?></a>: <?php echo wp_html_excerpt( $comment->comment_content, 45 ); ?> (...)</p></li>
<?php }  ?>
</ul>

Wird für Kommentarausgabe-Divs verwendet -

$comment->comment_ID

object (WP_User) # 345 (7) {["data"] => object (stdClass) # 344 (10) {["ID"] => string (1) "2" ["user_login"] => string ( 6) "agent1" ["user_pass"] => string (34) "$ P $ BXUSPFSBfmyIrjZ2YUnbIs1GwjkdH50" ["user_nicename"] => string (6) "agent1" ["user_email"] => string (19) "agent1 @ homekast.com "[" user_url "] => Zeichenfolge (0)" "[" user_registered "] => Zeichenfolge (19)" 2015-07-25 10:33:27 "[" user_activation_key "] => Zeichenfolge (0 ) "" ["user_status"] => string (1) "0" ["display_name"] => string (9) "John Paul"} ["ID"] => int (2) ["caps"] = > array (1) {["agent"] => bool (true)} ["cap_key"] => string (15) "tr_capabilities" ["role"] => array (1) {[0] => string (5) "agent"} ["allcaps"] => array (2) {["read"] => bool (true) ["agent"] => bool (true)} ["filter"] => NULL }

5
Rich

Was Sie hier verwenden müssen, ist die Funktion WP_Comment_Query () .

Auf der author.php-Seite können Sie also ganz einfach die Autoreninformationen und die ID wie folgt abrufen:

// get author info
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));

// set ID
$user_id = $curauth->ID;

Dann fügen wir die Benutzer-ID in das Array der Abfrageargumente ein:

$args = array(
    'user_id' => $user_id, // comments by this user only
    'status' => 'approve',
    'post_status' => 'publish',
    'post_type' => 'post'
);

Und schließlich haben wir die Argumente in der wp_comment_query() getroffen:

// The Query
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );

// Comment Loop
if ( $comments ) {
    foreach ( $comments as $comment ) {
        echo '<p>' . $comment->comment_content . '</p>';
    }
} else {
    echo 'No comments found.';
}

Als zusätzlichen Bonus habe ich vor nicht allzu langer Zeit untersucht, wie Paginierung mit wp_comment_query() funktioniert und biete hier eine gute Lösung an . Es war ein bisschen kompliziert, es zum Laufen zu bringen.

BEARBEITEN:

Ein besserer Weg, die Autoren-ID zu erhalten, ist einfach mit (props @Pieter):

$user_id = get_queried_object_id();
5

Bei der ersten Methode fehlt der zweite Parameter für get_the_author_meta, der die ID des Autors ist.

Zweitens verwenden Sie undefinierte Variablen. Aktivieren Sie diesen Code, damit Sie das bekommen, was Sie wollen.

// Method 1
<ul class="authpcom">
    <?php
        $queried_object = get_queried_object();
        $author_email = get_the_author_meta( 'user_email', $queried_object->ID ); 

        $args = array(
            'author_email' => $author_email
        );
        $comments = get_comments($args);
        foreach($comments as $comment) :
            echo '<a href=" ' . get_permalink( $comment->comment_post_ID ) . ' " rel="external nofollow" title=" ' . get_the_title( $comment->comment_post_ID ) . ' ">' . get_the_title( $comment->comment_post_ID ) . '</a><br />' . $comment->comment_date . '<br /><li>' . $comment->comment_content . '</li>';
        endforeach;
    ?>
</ul>


// Method 2
<?php
    $comments = get_comments();
?>
<ul id="recent_comments">
<?php foreach ($comments as $comment) { ?>
<li>
    <p>
        <strong>
        <?php
            echo get_avatar( $comment->comment_author_email, '45' );
            echo strip_tags($comment->comment_author);
        ?>
        </strong>
        &nbsp;commented on <a href="<?php echo get_permalink( $comment->comment_post_ID ); ?>#comment-<?php echo $comment->comment_ID; ?>" rel="external nofollow" title="<?php echo get_the_title( $comment->comment_post_ID ); ?>"> <?php echo get_the_title( $comment->comment_post_ID ); ?></a>: <?php echo wp_html_excerpt( $comment->comment_content, 45 ); ?> (...)
    </p>
</li>
<?php }  ?>
</ul>

BEARBEITEN: (09/05/2015)

// Method 1
<ul class="authpcom">
    <?php
        $authorID = get_queried_object_id();
        $author_email = get_the_author_meta( 'user_email', $authorID ); 

        $args = array(
            'user_id' => $authorID,
        );
        $comments = get_comments($args);
        if ( $comments ) {
            foreach($comments as $comment) {
                echo '<li><a href="' . get_permalink( $comment->comment_post_ID ) . '" rel="external nofollow" title="' . get_the_title( $comment->comment_post_ID ) . '">' . get_the_title( $comment->comment_post_ID ) . '</a><br>' . $comment->comment_date . '<br>' . $comment->comment_content . '</li>';
            }
        } else {
            echo '<li>No Comments from this Author</li>';
        }
    ?>
</ul>
1
Abhik

Sie können dies mit dem Ultimate Member Plugin erreichen. Es scheint in der Lage zu sein, eine Menge mit Benutzerprofilen zu tun, aber es scheint auch geeignet zu sein, die Kommentare des Benutzers auf der Profilseite anzuzeigen.

Anzeigen von Autorenbeiträgen und Kommentaren zu Benutzerprofilen

0
tillinberlin