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);