fauzanjeg

JNews || Custom Avatar Size

Sep 19th, 2025
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.55 KB | None | 0 0
  1. <?php
  2.  
  3. /** START || JNews Custom Avatar Size */
  4.  
  5. /**
  6.  * JNews Custom || Add New Image Size
  7.  */
  8. function jnews_custom_new_image_size() {
  9.     add_image_size( 'avatar-400x400', 400, 400, true );
  10. }
  11. add_action( 'init', 'jnews_custom_new_image_size' );
  12.  
  13. /**
  14.  * JNews Custom || Use New Avatar Size
  15.  *
  16.  * @param string $avatar        HTML for the user's avatar.
  17.  * @param mixed  $id_or_email   The avatar to retrieve. Accepts a user ID, Gravatar MD5 hash,
  18.  *                              user email, WP_User object, WP_Post object, or WP_Comment object.
  19.  * @param int    $size          Height and width of the avatar in pixels.
  20.  * @param string $default_value URL for the default image or a default type. Accepts:
  21.  *                              - '404' (return a 404 instead of a default image)
  22.  *                              - 'retro' (a 8-bit arcade-style pixelated face)
  23.  *                              - 'robohash' (a robot)
  24.  *                              - 'monsterid' (a monster)
  25.  *                              - 'wavatar' (a cartoon face)
  26.  *                              - 'identicon' (the "quilt", a geometric pattern)
  27.  *                              - 'mystery', 'mm', or 'mysteryman' (The Oyster Man)
  28.  *                              - 'blank' (transparent GIF)
  29.  *                              - 'gravatar_default' (the Gravatar logo)
  30.  * @param string $alt           Alternative text to use in the avatar image tag.
  31.  * @param array  $args          Arguments passed to get_avatar_data(), after processing.
  32.  */
  33. function jnews_custom_avatar_size( $avatar, $user_id, $size, $default, $alt, $args ) {
  34.     $profile_picture = get_the_author_meta( 'profile_picture', $user_id );
  35.  
  36.     if ( $profile_picture ) {
  37.         $image = wp_get_attachment_image_src( $profile_picture, 'avatar-400x400' );
  38.  
  39.         $class = array( 'avatar', 'avatar-' . (int) $args['size'], 'photo' );
  40.  
  41.         if ( ! $args['found_avatar'] || $args['force_default'] ) {
  42.             $class[] = 'avatar-default';
  43.         }
  44.  
  45.         if ( $args['class'] ) {
  46.             if ( is_array( $args['class'] ) ) {
  47.                 $class = array_merge( $class, $args['class'] );
  48.             } else {
  49.                 $class[] = $args['class'];
  50.             }
  51.         }
  52.  
  53.         $avatar = sprintf(
  54.             "<img alt='%s' src='%s' srcset='%s' class='%s' height='%d' width='%d' %s/>",
  55.             esc_attr( $args['alt'] ),
  56.             esc_url( $image[0] ),
  57.             esc_attr( "$image[0] 2x" ),
  58.             esc_attr( join( ' ', $class ) ),
  59.             (int) $args['height'],
  60.             (int) $args['width'],
  61.             $args['extra_attr']
  62.         );
  63.     }
  64.  
  65.     return $avatar;
  66. }
  67. add_filter( 'get_avatar', 'jnews_custom_avatar_size', 99, 6 );
  68.  
  69. /** END || JNews Custom Avatar Size */
Advertisement
Add Comment
Please, Sign In to add comment