最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How to list the authors of all revisions?

programmeradmin1浏览0评论

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!

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!

Share Improve this question edited Dec 30, 2020 at 10:17 Rup 4,4004 gold badges29 silver badges29 bronze badges asked Dec 30, 2020 at 3:41 老鹰之歌老鹰之歌 432 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 0

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>';

}

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" );
发布评论

评论列表(0)

  1. 暂无评论