Как реализовать редактирование профиля из фронтенда Wordpress?
Все данные юзера хранятся в мета полях, ваша задача - получить данные из формы и сохранить их в соответствующем поле
Можно сохранять по одному полю  update_user_meta https://github.com/WordPress/WordPress/blob/master...
Можно пачкой wp_update_user https://github.com/WordPress/WordPress/blob/master...
Вообще стоит посмотреть описание и код функции wp_insert_user https://github.com/WordPress/WordPress/blob/master...
много вопросов снимется
Вот этот шорткод [profile] выводит и сохраняет имя юзера.
Естественно, нужно сделать проверки на заполненность и обрезание лишних символов, но логика должна быть понятна.<?php

function profile_info_shortcode( $atts ) {

	ob_start();	
	
	if ( is_user_logged_in() ) {
	
		global $current_user;
		
		if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == 'update-user' ) {
		
			update_user_meta( $current_user->ID, 'first_name', esc_attr( $_POST['first-name'] ) );
		
		}
		?>
	
	
		<form method="post" id="user_page" action="<?php the_permalink(); ?>">
			
		    <label for="first-name"><?php _e( 'Имя', 'ay' ); ?></label>
		    <input name="first-name" type="text" id="first-name" value="<?php the_author_meta( 'first_name', $current_user->ID ); ?>" />
			
			<input name="updateuser" type="submit" id="updateuser" value="<?php _e( 'Сохранить', 'ay' ); ?>" />
			<?php wp_nonce_field( 'update-user' ) ?>
	    <input name="action" type="hidden" id="action" value="update-user" />
			
		</form>
		
	<?php	
	}

	return ob_get_clean();

}
add_shortcode( 'profile', 'profile_info_shortcode' );