Saiba como inserir a foto no menu do usuário logado em seu site WordPress.
1º Passo é adicionar em Aparência > Menus um link personalizado, com um rótulo único. No meu caso escolhi {{user-avatar}}
O menu então ficará assim:
2º Passo é adicionar o seguinte código no functions.php do seu tema:
function foto_menu($items, $args){ //Foto do usuário //Retorna uma imagem padrão caso não haja uma foto escolhida ou usuário não está logado. //30 é o tamanho da foto em px. $img_user = get_avatar(get_current_user_id(), 30, '', 'foto usuario', ''); //Altera o rótulo do menu pela foto. $items = str_replace('{{user-avatar}}', $img_user, $items); return $items; } add_filter('wp_nav_menu_items', 'foto_menu', 10, 2);
Dica: use o plugin WP User Avatar para gerenciar os avatares dos usuários e a foto padrão para quando o usuário não estiver logado/sem foto.
Bônus: Imagem e nome do usuário no menu do WordPress:
function foto_nome_menu($items, $args){ $current_user = wp_get_current_user(); //Foto do usuário //Retorna uma imagem padrão caso não haja uma foto escolhida ou usuário não está logado. //30 é o tamanho da foto em px. $img_user = get_avatar($current_user->ID, 30, '', 'foto usuario', ''); //Altera o rótulo do menu pela foto. $items = str_replace('{{user-avatar}}', $img_user, $items); //Nome do usuário $items = str_replace('{{user-name}}', $current_user->user_firstname, $items); if(is_user_logged_in()){ //Nome do usuário $items = str_replace('{{user-name}}', $current_user->user_firstname, $items); }else{ //Apaga a tag {{user-name}} caso nenhum usuário esteja logado. $items = str_replace('{{user-name}}', '', $items); } return $items; } add_filter('wp_nav_menu_items', 'foto_nome_menu', 10, 2);