sql >> データベース >  >> RDS >> Mysql

WordPressでもウェブサイトのログインを機能させる

    config.phpを編集し、次の2行を追加することで、カスタムテーブルを使用するようにwordpressログインを設定できます。

    define('CUSTOM_USER_TABLE','new_user_table'); //login, pass, email etc
    define('CUSTOM_USER_META_TABLE', 'new_usermeta_table'); //optional bio, don't have to include this line
    

    ここで、new_user_tableはWebサイトのテーブルであり、new_usermeta_tableはWebサイトのバイオテーブルです(必要な場合)

    カスタムテーブルは、通常のワードプレステーブルと同じ構造である必要があります。したがって、これを既存のWebサイトのテーブルで機能させるには、いくつかのフィールドを追加し、パスワードが同じ方法でハッシュされていることを確認する必要があります。

    ユーザーテーブルを構成する方法は次のとおりです

    ユーザーメタテーブルを構成する方法は次のとおりです

    登録時にパスワードを正しくハッシュするには、ファイルwp-includes / plugingable.phpをインクルードし、関数
    <?php $hash = wp_hash_password( $password ) ?>を使用します。

    正しくハッシュされていない既存のパスワードについては、電子メールのパスワードリセットを設定する必要があります。

    または。現在のパスワードハッシュを保持したい場合(セキュリティ上の理由からお勧めしませんが、実行可能です)、ワードプレスのハッシュ関数を変更できます。 wp-includes / plugin.phpの変更:

    if ( !function_exists('wp_hash_password') ){
        function wp_hash_password($password) {
                    //apply your own hashing structure here
                return $password;
        }
    }
    

    そして変更:

    if ( !function_exists('wp_check_password') ){
        function wp_check_password($password, $hash, $user_id = '') {
                //check for your hash match
                return apply_filters('check_password', $check, $password, $hash, $user_id);
                }
    }
    

    wp_check_passwordの詳細については、こちらにアクセス してください。

    または

    カスタムユーザーテーブルをいじり回すことをスキップして、WordPressログインをサイトの残りの部分に適用させることができます。これを行うには、次のコードを使用するだけです。

    <?php
    include 'wp-config.php';
    if ( is_user_logged_in() ) {
        echo 'Welcome, registered user!';
    } else {
        header( 'Location: http://google.com' ) ;
    };
    ?>
    

    'wp-config.php'がファイルへの完全な相対パスであることを確認してから、このコードをWordPress以外のサイトのすべてのページに配置します。エコーをログインユーザーに表示されるコンテンツに置き換え、ヘッダーをゲストに表示されるコンテンツに置き換えます。コンテンツが単純なhtmlの場合、次の操作を実行できます。

    <?php
    include 'wp-config.php';
    if ( is_user_logged_in() ) {
    ?>
    
    <html>
    <head></head>
    <body><p>Welcome Registered user</p></body>
    </html>
    
    <?php
    } else {
    ?>
    
    <html>
    <head></head>
    <body><p>Please log in</p></body>
    </html>
    
    <?php
    };
    ?>
    


    1. リモートMySQLデータベース接続のセットアップ

    2. 認証方法'mysql_old_password'はサポートされていません

    3. mysqlの文字列から数字を削除する

    4. テーブル関数とパイプライン関数の違いは?