web-dev-qa-db-ja.com

Lostpassword_urlフックを使用すべき理由がわかりません。

以下のコードで私のコメントを調べてください。

//なぜこれができないのですか?

class Customuser {

    public function __construct() {

        // Using this when using lost password functionality
        add_filter("lostpassword_url", array( $this, 'lostyourpasswordpage') );

        $html .= '<a href="' . wp_lostpassword_url( get_bloginfo('url') ) . '">Forgot?</a>';
        echo $html;

        // WHY can I not just do this?
        $html .= '<a href="/forgotmypassword">Forgot?</a>';
        echo $html;            

    }

    public function lostyourpasswordpage() {
        return '/forgotmypassword';
    }

}

誰かが説明してもらえますか?

フックを使用すると、いくつかのgetyourpassword-functionsを取得できると思いますが、使い方がわかりませんか? (そうでなければ、同じことを実現するための機能を実行することもできますが、WordPressコアがこの機能をサポートしているように見える場合は不要です。)

wp_lostpassword_url() を、ユーザーが自分のパスワードをリセットできるようにするフォームを含むページへのリンクのプレースホルダーと考えてください。

あなたはあなたのWordPressサイト内のどこでもこのプレースホルダーを使用することができます、そしてあなたがユーザーが彼らのパスワードをリセットすることを可能にするあなた自身のフォームを提供することに決めるなら

class Customuser {

    public function __construct() {
        add_filter( 'lostpassword_url', array( $this, 'lostyourpasswordpage' ), 10, 2 );
    }

    public function lostyourpasswordpage( $lostpassword_url, $redirect ) {
        return home_url( '/forgotmypassword/' );
    }

}

new Customuser();のようなものを使ってクラスを呼び出すと、どこでもwp_lostpassword_url()の出力がデフォルトの/wp-login.php?action=lostpasswordから/forgotmypasswordに変更されます。そのため、どこでもリンクを検索/置換/更新する必要はありません。

それにもかかわらず、それはWordPressによって提供されるもののようなフォームを持つページを生成しません。それはあなた次第です。

これが物事を今もっと明確にすることを願っています:)

4
Sven