web-dev-qa-db-ja.com

ユーザー名フィールドの事前入力

私は奇妙な要求がありますが、うまくいけばそれは実行可能です。私は自分のサイトに自分のクライアントのために、いくつかのロゴを持つことができるようにしたいです。クリックしたロゴによっては、すでに入力されているユーザー名のログインページに移動します。そのため、「Bob's Grill」のロゴをクリックすると、「Bob's Grill」のユーザー名がすでに入力されているログインページに移動します。

これを行う方法はありますか?ありがとうございます。

3
Tyler Johnson

WPをトリックしてusernameフィールドに事前入力する方法はありますが、POSTを使用して以前の投稿にエラーがあると考えるようにトリックすることも含まれるはずです。 。

私のアドバイスは、Javascript(または以下で行ったようにjQuery)を使用することです。それはまだ 'ハック'です、しかし少なくともそれは非常に少ないオーバーヘッドで仕事を終わらせます、そしてそれは使いやすく死んでいます。これは事前移入URLパラメータをチェックする小さなスクリプトを追加し、何かが見つかった場合は自動補完をトリガーします。

// Add jQuery if prepopulate GET is found
add_action('login_head', 'prepopulate_username_js');
function prepopulate_username_js() {
    if(isset($_GET['prepopulate'])) :
    ?>
    <script type="text/javascript">
        jQuery(function($){
            $('#user_login').val('<?php echo($_GET['prepopulate']); ?>');
        });
    </script>
    <?php
        endif;
}

次に、ロゴのリンクを作成するときに、テーマのテンプレート内のこれらの行に沿って何かを使用して上記のスクリプトを起動します。

<a href="<?php echo(add_query_arg(array('prepopulate' => 'bob'), wp_login_url())); ?>">This will link to a prepopulated login form!</a> // change 'bob' for whatever is relevant
2
Tomas Buteler