【wordpress】ウィジェットにログインフォームをプラグインなしキャプチャありで設置する

【wordpress】ウィジェットにログインフォームをプラグインなしキャプチャありで設置する

ウィジェットにログイン・ログアウトする機能があれば便利だと思って作成してみました。

実装

ここにあるコードをお使いのテーマのfunctions.phpに追記してください。

ウィジェットでショートコードを使えるようにする

このコードを加えることで、普通はできないショートコードでウィジェットが使えるようになります。

functions.php
//do shortcode in widget
add_filter('widget_text', 'do_shortcode' );

ウィジェットに表示するもの

ログインしていないときはログインフォームが、ログインしているときは名前とログアウトボタンが出現します。お好みで調節してください。

functions.php
//login form in widget
function login_widget() {
    $body = << user name password capcha <img id="captcha_widget" src="/securimage/securimage_show.php" alt="CAPTCHA Image"> Different Image register / 登録 login
    HTML;
    $logout_form = << logout
    HTML;
    $user = wp_get_current_user();
    $id = get_current_user_id();
    if(is_user_logged_in()){
        echo "Hi, $user->display_name";
        echo $logout_form;
    } else {
        echo $body;
    }
}
add_shortcode('login_widget', 'login_widget');

ログアウト機能を搭載

このコードを加えることで、ログアウトurlを見せることなくログアウトできます。

functions.php
//logont
add_action('after_setup_theme', function() {
    if ( isset( $_POST['my_logout'] ) && $_POST['my_logout'] === 'logout') {
        // ログインフォームからの送信があれば
        my_logout();
    }
});
//logout function
function my_logout() {
    wp_logout();
    exit;
    return;
}

「securimage」をダウンロード

キャプチャには「securimage」を使用します。

ここからダウンロードできます。

人によってやり方は違うかもしれませんが、ダウンロードしたら、wp-adminやwp-content, wp-imcludeがある階層に「securimage」の名前で保存してください。
私はパソコンにzipで保存して、Cyberduckを使ってFTPS経由で保存しました。
もちろん階層、名前は自由ですが、自分が載せたコードでは/securimageでアクセスするようにしています。
なのでそこを変えれば任意の階層、名前でも動きます。

仕上げ

全てできましたか?

あとはwidgetのカスタムHTMLにショートコードで[login_widget]と入れるだけです!

  1. 先ほど貼り付けた
    add_shortcode('register', 'register');
    add_shortcode('login', 'login');

    add_shortcode('registers', 'register');
    add_shortcode('logins', 'login');
    と一度変える。
    二つあるうちの前を変えてください。変えれば文字は何でもいいです。
  2. ショートコードで[]の中でlogin, registerをはる。記事、固定ページ保存。
  3. add_shortcode('register', 'register');
    add_shortcode('login', 'login');
    に戻す

とりあえず先にショートコードの文字列を決定して、そのあとにコードの文字を変えればいいみたいです。

関係する記事

securimageをカスタマイズしたい

カスタマイズできるところをのせました。

securimageの使い方・カスタマイズ方法
securimageの使い方・カスタマイズ方法

以上です。ご覧いただきありがとうございました。

関連記事

【wordpress】ログイン・非ログイン時で表示する内容を変える方法

【wordpress】ログイン・非ログイン時で表示する内容を変える方法

【wordpress】プラブインなしで管理バーを権限別に表示・非表示にする

【wordpress】プラブインなしで管理バーを権限別に表示・非表示にする

【wordpress】ユーザーのダッシュボードアクセスを制限するプラグイン【Remove Dashboard Access】

【wordpress】ユーザーのダッシュボードアクセスを制限するプラグイン【Remove Dashboard Access】

【失敗談アリ】テックアカデミーのAIコースを徹底レビューする

【失敗談アリ】テックアカデミーのAIコースを徹底レビューする

【無料】Magic Keyboard等をワンクリックで複数Mac間で切り替えられるアプリ作った【Blue Switch】

【無料】Magic Keyboard等をワンクリックで複数Mac間で切り替えられるアプリ作った【Blue Switch】

【泣けるほど簡単】投稿内に自分しか見えないメモをプラグインなしで実装する方法

【泣けるほど簡単】投稿内に自分しか見えないメモをプラグインなしで実装する方法

【wordpress】登録・ログインフォームをプラグインなし・キャプチャありで実装する

【wordpress】登録・ログインフォームをプラグインなし・キャプチャありで実装する

Javascript/Typescript(+react等)開発環境を簡単に構築するスクリプト作った

Javascript/Typescript(+react等)開発環境を簡単に構築するスクリプト作った

コメント

*

*