Di come aggiungere foto profilo utente in WordPress, ne avevamo già parlato in un precedente articolo (vedi => Cambiare immagine utente su wordpress). In breve si consigliava l’utilizzo di Gravatar.com

Considerando che molte persone non vorrebbero essere costrette ad usare il metodo Gravatar, è possibile creare un Avatar personalizzato impostando delle funzioni in WordPress.

Come sempre il consiglio è di agire su un tema child ed aggiungere le seguenti funzioni create da Bill Erickson e che riporto fedelmente poichè funzionano perfettamente per il nostro scopo:


/* Add Custom Avatar Field */
function be_custom_avatar_field( $user ) { ?>
	<h3>Custom Avatar</h3>

	<table>
	<tr>
	<th><label for="be_custom_avatar">Custom Avatar URL:</label></th>
	<td>
	<input type="text" name="be_custom_avatar" id="be_custom_avatar" value="<?php echo esc_attr( get_the_author_meta( 'be_custom_avatar', $user->ID ) ); ?>" /><br />
	<span>Type in the URL of the image you'd like to use as your avatar. This will override your default Gravatar, or show up if you don't have a Gravatar. <br /><strong>Image should be 70x70 pixels.</strong></span>
	</td>
	</tr>
	</table>
	<?php
}
add_action( 'show_user_profile', 'be_custom_avatar_field' );
add_action( 'edit_user_profile', 'be_custom_avatar_field' );

/* Save Custom Avatar Field*/
function be_save_custom_avatar_field( $user_id ) {
	if ( !current_user_can( 'edit_user', $user_id ) ) { return false; }
		update_usermeta( $user_id, 'be_custom_avatar', $_POST['be_custom_avatar'] );
}
add_action( 'personal_options_update', 'be_save_custom_avatar_field' );
add_action( 'edit_user_profile_update', 'be_save_custom_avatar_field' );

/* Use Custom Avatar if Provided */
function be_gravatar_filter($avatar, $id_or_email, $size, $default, $alt) {

	// If provided an email and it doesn't exist as WP user, return avatar since there can't be a custom avatar
	$email = is_object( $id_or_email ) ? $id_or_email->comment_author_email : $id_or_email;
	if( is_email( $email ) && ! email_exists( $email ) )
		return $avatar;

	$custom_avatar = get_the_author_meta('be_custom_avatar');
	if ($custom_avatar)
		$return = '<img src="'.$custom_avatar.'" width="'.$size.'" height="'.$size.'" alt="'.$alt.'" />';
	elseif ($avatar)
		$return = $avatar;
	else
		$return = '<img src="'.$default.'" width="'.$size.'" height="'.$size.'" alt="'.$alt.'" />';
	return $return;
}
add_filter('get_avatar', 'be_gravatar_filter', 10, 5);

Fatto ciò puoi da subito inserire la tua immagine preferita associata al tuo profilo in “Utenti -> Il tuo profilo” e che sarà visibile sotto ogni articolo del tuo blog.




Per qualsiasi domanda, lascia un tuo commento.