Mysql
 sql >> база данни >  >> RDS >> Mysql

Накарайте влизането в уебсайт да работи и на WordPress

Можете да настроите влизането в 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
};
?>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разбера моята root MySQL парола?

  2. MySQL агрегирана сума от JSON обекти

  3. Получаване на времева марка с MySQL

  4. Брой редове с PDO

  5. Най-добрият начин за хостване на MySQL в Azure Cloud