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
};
?>