web-dev-qa-db-ja.com

Wordpressのカスタムログインページ

Wordpressのカスタムログインページを作成する方法についての小さな記事を見つけましたが、このテクニック/プラクティスを使用しても安全かどうか疑問に思います。

記事: http://blog.caercam.org/2012/09/21/wordpress-login-page-complete-redesign/

私はこのテクニックを試してみましたが、Logout機能がwordpressで動作しなくなり、間違ったアカウントのユーザー名またはパスワードを入力してloginをクリックした場合古いloginページにリダイレクトされます。これらの問題を解決する方法はありますか?

記事と同じコードをすべて使用しています。

1
Pullapooh

あなたは多くの点ですでにあなたの質問に答えています:この記事で説明されているテクニックは信頼できるものにはなりません。あなたがうまくいかなかったかもしれないのは「なぜ」です。

コードは相対URLを使用しています...

__コード__

...これはWordPressの文脈ではほとんどいつも信頼できません。ログインURLが<form name="loginform" id="loginform" action="/wp-login.php" method="post"> になるように、サイトがディレクトリにインストールされている場合、これは機能しません。

次に、コードはフォームアクションとしてwww.example.com/directory/wp-login.phpを使用します(site_url('wp-login.php')ではなく、注意してください、または正しいwp_login_url()でさえない)。つまり、フォームを送信すると、古いログインページに移動して処理されることを意味します。問題が発生した場合は、そのページが最終的に表示されます。

第三に、wp-login.phpregexハックはsite_urlまたはsite_urlを使用する関数を使用する場合にのみ機能します。プラグインやテーマがこれらの機能を使わないのであればうまくいきませんし、アドレスバーにsite_urlとタイプしただけでもうまくいきません。

第四に、wp-login.phpregexing site_urlは進むべき道ではありません。その関数が使用されるたびにregexを実行しています。ログインリンクに何回使用されるのでしょうか。 1%未満?非常に無駄です。

より良いフックは login_url でしょう、これはこの状況のた​​めに作られています。

基本的に、これは非常に表面的なログインページのハックであり、「WordPressログインページの完全な再設計」ではありません。ログインページをカスタマイズするためのより良い方法があります。最も簡単なのは、 ログインページ自体のアクションとフィルタを使うことですwp-login.phpとはまったく異なるページを使用することを選択した場合、そのページには機能と生のHTMLの両方があり、混乱することなく他のページに簡単には含まれないため、ほとんどのデフォルト機能を複製する必要があります。

2
s_ha_dum