How to list the authors of all revisions?

Some wordpress post has many revisions, and I know how to list all revisions,use code:wp_list_post_revisions( int|WP_Post $post_id, string $type = 'all' )

However,
How to list only the authors of every revision in the post, need to meet:

  1. list the author of all revisions;
  2. the author does not repeat;(Maybe the author edited the same post several times)
  3. The author has a link to his profile page

thank you very very much!

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Use Can Use Below This Function For Get All Revisions in Author Details With checked Duplicate .

According to your need.

function  get_all_revisions($post_id){


//get all revisions of particular Page Id & Post Id

$revision = wp_get_post_revisions($post_id);

$post_author_id = array();

foreach ($revision as $key => $value) {
    

    // Check Id Already Exists in Array 
     
    if ( ! in_array($value->post_author, $post_author_id)) {

        // Store Author Id 
        $post_author_id[] = $value->post_author;

        $get_author['author_link'] = get_author_posts_url($value->post_author); // Author Link
        $get_author['author_name'] = get_the_author_meta( 'display_name', $value->post_author ); // Author Display Name

        //Store All Author Details in Array
        $get_author_group[] =  $get_author;

     } 
        
     
    }
    
    return $get_author_group;

}

Usage :

// 2 is page or post id
$all_revisions = get_all_revisions(2); 

//print_r($all_revisions);

foreach ($all_revisions as $key => $value) {
    
    echo $value['author_link'].'<br>';
    echo $value['author_name'].'<br>';

}

Method 2

I don’t think you can get it by using any default function but sure you can use custom SQL for that.

global $wpdb;
$post_id = get_the_ID();
$revisions = $wpdb->get_results( "SELECT pt.post_author FROM $wpdb->posts pt WHERE 1=1 AND pt.post_parent = '$post_id' AND pt.post_type = 'revision' AND pt.post_status = 'inherit' GROUP BY post_author ORDER BY pt.post_author ASC" );


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x