Можете да настроите влизането в wordpress да използва персонализирана таблица, като редактирате config.php и добавите тези два реда:
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 е таблицата на вашия уебсайт, а new_usermeta_table е таблицата с биологията на вашия уебсайт (ако искате такава)
Персонализираната таблица трябва да има същата структура като нормалната таблица на WordPress. Така че, за да накарате това да работи с таблицата на съществуващия ви уебсайт, ще трябва да добавите някои полета и да се уверите, че паролата е хеширана по същия начин.
Ето как да структурирате потребителската таблица
Ето как да структурирате потребителската мета таблица
За да хеширате паролите правилно при регистрация, включете файла wp-includes/pluggable.php и използвайте функцията<?php $hash = wp_hash_password( $password ) ?>
За съществуващи пароли, които не са хеширани правилно, ще трябва да настроите нулиране на паролата за имейл.
Или. ако искате да запазите текущите си хешове на паролата (не се препоръчва от съображения за сигурност, но е изпълнимо), можете да промените функцията за хеширане на WordPress. В wp-includes/pluggable.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
};
?>