Advertisement
arie_cristianD

override co author limit

Nov 24th, 2024
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.93 KB | None | 0 0
  1. function jnews_get_author_coauthor( $post_id = null, $image = true, $by_class = null, $limit = 0 ) {
  2.     $limit = 10; /* showing author name limit */
  3.     if ( jnews_check_coauthor_plus() ) {
  4.         /** Get coauhtor list */
  5.         $coauthors = get_coauthors( $post_id );
  6.         /** Real Iterate */
  7.         $real_i = new CoAuthorsIterator( $post_id );
  8.         /** Custom Iterate */
  9.         $fake_i = new CoAuthorsIterator( $post_id );
  10.  
  11.         /** Start iterate */
  12.         $real_i->iterate();
  13.         $fake_i->iterate();
  14.  
  15.         /** Check limiter iterate */
  16.         $count          = $fake_i->count();
  17.         $check_limit    = ( $limit > 0 && $count > $limit ) ? true : false;
  18.         $residual       = ( $check_limit ) ? $count - $limit : 0;
  19.         $residual       = ( $check_limit ) ? '<span class="meta_text separators">' . $residual . ' ' . jnews_return_translation( 'others', 'jnews', 'others' ) . '</span>' : '';
  20.         $fake_i->count  = ( $check_limit ) ? $limit + 1 : $count;
  21.         $is_multiple    = $fake_i->count() > 1 ? true : false;
  22.         $multiple_class = $is_multiple ? 'jnews_multiple_author' : '';
  23.  
  24.         $authors      = '';
  25.         $author_image = '';
  26.  
  27.         /** Loop coauthor */
  28.         foreach ( $coauthors as $coauthor ) {
  29.             /** Trigger real iterate */
  30.             $real_i->iterate();
  31.             $output       = '';
  32.             $author_text  = '';
  33.             $guest_author = ( 'guest-author' === $coauthor->type ) ? true : false;
  34.  
  35.             /** Check author avatar */
  36.             if ( $image && $real_i->position < 3 ) {
  37.                 if ( $guest_author ) {
  38.                     $author_image .= coauthors_get_avatar( $coauthor, 80, null, $coauthor->display_name, $multiple_class );
  39.                 } else {
  40.                     $author_image .= get_avatar( get_the_author_meta( 'ID', $coauthor->ID ), 80, null, get_the_author_meta( 'display_name', $coauthor->ID ), array( 'class' => $multiple_class ) );
  41.                 }
  42.                 if ( ! $is_multiple ) {
  43.                     $author_text .= $author_image;
  44.                     $author_image = '';
  45.                 }
  46.             }
  47.  
  48.             /** Continue if limit reacehed */
  49.             if ( $check_limit && $fake_i->is_last() ) {
  50.                 continue;
  51.             }
  52.             if ( 0 === $fake_i->position ) {
  53.                 $author_text .= '<span class="meta_text ' . $by_class . '">' . jnews_return_translation( 'by', 'jnews', 'by' ) . '</span>';
  54.             }
  55.             $author_text .= $guest_author ? coauthors_posts_links_single( $coauthor ) : jnews_the_author_link( $coauthor->ID, false );
  56.  
  57.             // Append separators.
  58.             if ( 1 === $fake_i->count() - $fake_i->position ) { // last author or only author.
  59.                 $output .= $author_text;
  60.             } elseif ( 2 === $fake_i->count() - $fake_i->position ) { // second to last.
  61.                 $output .= $author_text . '<span class="meta_text separators-and">' . jnews_return_translation( 'and', 'jnews', 'and' ) . '</span>';
  62.             } else {
  63.                 $output .= $author_text . '<span class="meta_text separators">' . jnews_return_translation( ',', 'jnews', ',' ) . '</span>';
  64.             }
  65.  
  66.             /** Trigger custom iterate */
  67.             $fake_i->iterate();
  68.             $authors .= $output;
  69.         }
  70.         $authors  = $is_multiple ? $author_image . $authors : $authors;
  71.         $authors .= $residual;
  72.  
  73.         return $authors;
  74.     }
  75.  
  76.     return '';
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement