After hours of searching and trying different functions, I’ve finally successfully removed the /author/ from all of our users profile URLs. So its just /username/

However, when new users register their profile URL’s all give 404’s. I can fix this by going into the permalinks screen and clicking save but we register lots of users and I cannot do this for each one.

This is the function I’m using… Any Ideas!?

Thanks!

    add_filter('author_rewrite_rules', 'no_author_base_rewrite_rules');
function no_author_base_rewrite_rules($author_rewrite) {
   global $wpdb;
   $author_rewrite = array();
   $authors = $wpdb->get_results("SELECT user_nicename AS nicename from $wpdb->users");   
   foreach($authors as $author) {
       $author_rewrite["({$author->nicename})/page/?([0-9]+)/?$"] = 'index.php?author_name=$matches[1]&paged=$matches[2]';
       $author_rewrite["({$author->nicename})/?$"] = 'index.php?author_name=$matches[1]';
   }  
   return $author_rewrite;
}
if( !is_admin() ) {
add_action('init', 'author_rewrite_so_22115103');
}
function author_rewrite_so_22115103() {
   global $wp_rewrite; 
   if( 'author' == $wp_rewrite->author_base ) $wp_rewrite->author_base = null;
}

Read more here: Removing /author/ slug from URL gives 404


Solution:

If you know the solution of this issue, please leave us a reply in Comment section, to update the question.


Wordpress related questions and answers: