Authorアーカイブをトップページにリダイレクトさせ「/?author=〇」入力されてもWordPressユーザー名を伏せる方法

名前イメージ WordPress

【https://(サイトのドメイン)/?author=(1や2などの数字)】で、ブラウザのURL欄で検索するとWordPressはログイン名(ID)が分かります。

例えば、https://〇▲□.com/?author=1 ブラウザのURL欄で検索すると「https://〇▲□.com/author/(IDが1のログイン名)」と出てきてID番号が1のログインユーザー名が表示される。
Authorアーカイブをトップページにリダイレクト「/?author=〇」入力してもWordPressユーザー名伏せる
これは「https://〇▲□.com/というWEBサイトのID番号が1のユーザーが投稿した記事を一覧表示する」というAuthorアーカイブページを表示するWordPressの機能です。

ID番号別にユーザーごとの記事を検索するWordPressの親切機能なのですが「/?author=〇」を使えば、無関係の第3者に簡単にログインユーザ-名が分かってしまうので悪用されると厄介でもある。

スポンサーリンク

Authorアーカイブページをトップページへリダイレクトさせる

「/?author=〇」とブラウザのURL欄で検索されたら結果をトップページへリダイレク(トップページに転送)させる方法です。

テーマの関数(functions.php)に下記を追加する↓

//Authorアーカイブページをトップページにリダイレクト
function author_custom_redirection() {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
    $wp_rewrite->author_base = '';
    $wp_rewrite->author_structure = '/';
    if (isset($_REQUEST['author']) && !empty($_REQUEST['author'])) {
        wp_redirect(home_url());
        exit;
    }
}
add_action('init', 'author_custom_redirection');

(利用してるテーマが子テーマがあるのですが子テーマの方のfunctions.phpに追記で大丈夫でした。)

一応、パーマリンク設定を空更新しておきます。
これでhttps://(サイトのドメイン)/?author=〇と入力しても管理者のAuthorアーカイブには飛ばなくなり、トップページへ転送されます。

参照記事[WordPress] /?author=xx をちゃんと阻止した話 – Qiita
https://qiita.com/up-tri/items/043f5164df852b4f9958

ログインユーザー名が露出してしまうと、あとはパスワードだけなので不正ログインされるリスクが上がるかもしれません。簡単には分からないようにしておいた方が安心かなとは思います。
合わせてSiteGuard WP Plugin等を利用して回数制限や2段階認証を導入するセキュリティ対策はしておくとよいかもしれません。

タイトルとURLをコピーしました