WordPressのユーザー名漏洩を防止

WordPressのユーザー名漏洩を防止

WordPressサイトのホームURLに「?author=x」のGETクエリをつけることで、サイト内のユーザー名がばれてしまう。
その対策を行うfunction記述。

// WordPressのユーザー名漏洩を防止
function knockout_author_query() {
    // disable author rewrite rule
    global $wp_rewrite;
    //    $wp_rewrite->flush_rules();
    $wp_rewrite->author_base      = '';
    $wp_rewrite->author_structure = '/';
    // for author query request
    if (isset($_REQUEST['author']) && !empty($_REQUEST['author'])) {
        $user_info = get_userdata(intval($_REQUEST['author']));
        if ($user_info && array_key_exists('administrator', $user_info->caps) && in_array('administrator', $user_info->roles)) {
            wp_redirect(home_url());
            exit;
        }
    }
}
add_action('init', 'knockout_author_query');

参考サイト

IsaB
authorクエリを利用したWordPressのユーザー名漏洩を防ぐ方法
https://blog.isao.co.jp/prevent-the-leakage-of-user-name-by-author-query-on-wordpress/