How to remove author base in WordPress

后端 未结 6 1507
一整个雨季
一整个雨季 2021-01-05 07:25

Standard author links in WordPress look like: example.com/author/johnsmith

I\'d like to remove the author/ part of the URL so the username

6条回答
  •  轮回少年
    2021-01-05 08:09

    I've tested this combined solution but wasn't working before regenerating of permalinks. You can do it, as brasfolio described : simply clicking save on permalink page in dashboard.

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

提交回复
热议问题