[WP]ログインページに表示されるプライバシーポリシーへのリンクを削除する方法。

ログインページのプライバシーポリシーへのリンク削除_eyecatch

Worpdressで固定ページをプライバシーポリシーに設定するとログインページにもそのリンクが表示されてしまいます。

プライバシーポリシーや利用規約へのリンクは閲覧者がアクセスしやすい場所に設置するのが望ましいですが、ログインページには不要でしょう。

なぜこんな仕様になっているのかよく分かりませんが、削除します。

functions.phpにコードを追記します。style.cssでは消せませんでした。

ログインページのプライバシーポリシーを消す

WordPressには固定ページをプライバシーポリシーに使用するためのページとして設定する機能が付いています。
ログインページのプライバシーポリシーへのリンク削除_001機能は固定ページそのものですが、設定しておくと管理画面でポリシーガイドを確認したり、プライバシーポリシーページのリンクを表示する関数が使えたりします。

プライバシーポリシーページとして設定してもリンクはどこにも表示されません。
(自動でリンクを表示するテーマは少ないはずです。)

が、なぜかログインページには自動で表示されます...

ログインページのプライバシーポリシーへのリンク削除_002

ログインページにリンクが表示される

正直初めて見た時はそこに表示するの!?と思いました。
ログインページにテーマは関係ないので仕様のようです。

こんな場所にプライバシーポリシーへのリンクを表示しても誰も見れません。
気持ち悪いので?このリンクを消します。

CSSで非表示にする―失敗

通常ログインページはサイト運営者しか見ない(見れない)ページなのでCSSの「display: none;」で消せばいいじゃん!
と思い、子テーマのstyle.cssに記述しましたが見事に失敗でした。

ログインページにはテーマのCSSは読み込まれない

原因はログインページに子テーマのsytle.cssが読み込まれていない為でした。

ログインページのプライバシーポリシーへのリンク削除_003

Chromeでログインページのヘッダーを検証した画面

Chromeのデベロッパーツールでログインページに読み込まれているCSSを確認したところ、Wordpressに始めから入っているCSSのみが読み込まれているようです。

まぁログイン画面の見た目をカスタムする人も少ないでしょうしね…

どうしてもCSSで非表示にしたいなら、ログインページで読み込まれているCSSにスタイルを追記する必要があります。

/wp-includes/css/dashicons.min.css

などに

.login .privacy-policy-page-link {
    display: none;
}

と書けば非表示にできなくもないです。
(コアファイルなのでアップデートの度に戻る?)

functions.phpで非表示にする

上手くいかないのでうーんと思っていたのですが、Wordpress4.9.6から実装された「the_privacy_policy_link」という関数を使えば上手くいきました。

プライバシーポリシーページのリンクを表示する関数です。
これを使ってログインページの時だけ空(null)にします。

プライバシーポリシーを非表示にするコード

子テーマなどのfunctions.phpに下記のコードを追記すればOKです。

//ログインページのポリシーリンク削除
function delete_privacy_policy_loginpage( $link, $privacy_policy_url ) {
    if ( 'wp-login.php' === $GLOBALS['pagenow'] ) {
        return null;
    }
}
add_filter( 'the_privacy_policy_link', 'delete_privacy_policy_loginpage', 10, 2 );

ログインページの条件分岐にはグローバル変数を使うのですね・w・

ログインページのプライバシーポリシーへのリンク削除_004

プライバシーポリシーへのリンクが消えた

これできれいさっぱり!
ログインページにプライバシーポリシーを表示する意味...どなたかご存じ?

表示しておいても問題はない

今回は自己満足でリンクを消しましたが、セキュリティー的にも考えてみました。

WordPressのログインページはセキュリティー強化のためにURLを任意のものに変えて、自分しか分からないように隠しておくのが定石です。

そこで思ったことが1つあります。
プライバシーポリシーページの被リンクを調べればログインページのURLが分かるのでは?

被リンクチェックツールで検証したところ当サイトでは問題はなさそうでした。
「https://sologaku.com/author/1/」
となっていたのでこれがログインページなのかな?

そもそも仕様なので、セキュリティーが貧弱になるようなことは無いと思います。

まとめ

WordPressのログインページに表示されるプライバシーポリシーページのリンクを消す方法でした。

正直どっちでも良さそう・w・
完全に自己満足になりましたが、管理画面の条件分岐や関数について一つ勉強になりました。

なぜこんなところにry

-Wordpress
-

© 2021 ソロ学