// Salva o ID da foto de perfil quando o usuário atualiza o perfil
add_action( 'personal_options_update', 'odisseia_save_author_avatar' );
add_action( 'edit_user_profile_update', 'odisseia_save_author_avatar' );
function odisseia_save_author_avatar( $user_id ) {
if ( ! current_user_can( 'edit_user', $user_id ) ) {
return false;
}
if ( isset( $_POST['odisseia_author_avatar_id'] ) ) {
update_user_meta( $user_id, 'odisseia_author_avatar_id', sanitize_text_field( $_POST['odisseia_author_avatar_id'] ) );
}
}
// Adiciona a caixa do autor automaticamente no final do conteúdo dos posts únicos (Protegida contra auto-links)
add_filter( 'the_content', function( $content ) {
if ( is_singular( 'post' ) && in_the_loop() && is_main_query() ) {
$author_id = get_the_author_meta( 'ID' );
$author_name = get_the_author();
$author_url = get_author_posts_url( $author_id );
$author_bio = get_the_author_meta( 'description' );
// Pega a foto customizada ou o Gravatar padrão
$custom_avatar_id = get_user_meta( $author_id, 'odisseia_author_avatar_id', true );
if ( $custom_avatar_id ) {
$avatar_url = wp_get_attachment_url( $custom_avatar_id );
$author_avatar = '';
} else {
$author_avatar = get_avatar( $author_id, 64, '', $author_name, array( 'class' => 'odisseia-author-img' ) );
}
// Usamos
para a bio para evitar que plugins de auto-link encontrem tags de parágrafo aqui dentro $author_box = '
'; // Estilo inline para o avatar ficar redondo perfeitamente $author_box .= ''; return $content . $author_box; } return $content; }, 99999 );