Możesz ustawić logowanie Wordpress tak, aby używało niestandardowej tabeli, edytując plik config.php i dodając te dwie linie:
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
Gdzie new_user_table to tabela Twojej witryny, a new_usermeta_table to biotabela Twojej witryny (jeśli chcesz)
Tabela niestandardowa musi mieć taką samą strukturę jak normalna tabela Wordpress. Tak więc, aby to zadziałało z tabelą istniejącej witryny, musisz dodać kilka pól i upewnić się, że hasło jest zahaszowane w ten sam sposób.
Oto jak ustrukturyzować tabelę użytkowników
Oto jak ustrukturyzować metatablicę użytkownika
Aby poprawnie zahaszować hasła podczas rejestracji, dołącz plik wp-includes/pluggable.php i użyj funkcji<?php $hash = wp_hash_password( $password ) ?>
W przypadku istniejących haseł, które nie są poprawnie zaszyfrowane, musisz skonfigurować resetowanie hasła poczty e-mail.
Lub. jeśli chcesz zachować swoje obecne skróty hasła (niezalecane ze względów bezpieczeństwa, ale możliwe), możesz zmienić funkcję skrótu wordpress. W wp-includes/pluggable.php zmień:
if ( !function_exists('wp_hash_password') ){
function wp_hash_password($password) {
//apply your own hashing structure here
return $password;
}
}
I zmień:
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);
}
}
Aby uzyskać szczegółowe informacje na temat wp_check_password Przejdź tutaj
Alternatywnie
Możesz pominąć zabawę w niestandardową tabelę użytkowników i zastosować login wordpress do reszty witryny. Aby to zrobić, użyj po prostu następującego kodu:
<?php
include 'wp-config.php';
if ( is_user_logged_in() ) {
echo 'Welcome, registered user!';
} else {
header( 'Location: http://google.com' ) ;
};
?>
Upewnij się, że „wp-config.php” jest pełną ścieżką względną do pliku, a następnie umieść ten kod na każdej stronie w witrynie innej niż Wordpress. zamień echo na jakąkolwiek treść, która ma być wyświetlana dla zalogowanego użytkownika, a nagłówek zamień na jakąkolwiek treść, która ma być wyświetlana dla gościa. Jeśli treść to prosty html, możesz wykonać następujące czynności:
<?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
};
?>