sql >> Database >  >> RDS >> Mysql

Laat inloggen op de website ook werken op WordPress

U kunt de WordPress-login instellen om een ​​aangepaste tabel te gebruiken door config.php te bewerken en deze twee regels toe te voegen:

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

Waar new_user_table de tabel van uw website is en new_usermeta_table de biotabel van uw website is (als u er een wilt)

De aangepaste tabel moet dezelfde structuur hebben als een normale wordpress-tabel. Dus om dit te laten werken met de tabel van uw bestaande website, moet u enkele velden toevoegen en ervoor zorgen dat het wachtwoord op dezelfde manier wordt gehasht.

Hier leest u hoe u de gebruikerstabel structureert

Hier leest u hoe u de gebruikersmetatabel structureert

Om de wachtwoorden correct te hashen bij registratie, voegt u het bestand wp-includes/pluggable.php toe en gebruikt u de functie
<?php $hash = wp_hash_password( $password ) ?>

Voor bestaande wachtwoorden die niet correct zijn gehasht, moet u een e-mailwachtwoordreset instellen.

Of. als je je huidige wachtwoord-hashes wilt behouden (om veiligheidsredenen niet aanbevolen, maar wel te doen), kun je de wordpress-hashfunctie wijzigen. Wijzig in wp-includes/pluggable.php:

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

En verander:

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

Voor details over wp_check_password Ga hier

Alternatief

U kunt het rommelen met uw aangepaste gebruikerstabel overslaan en de WordPress-login toepassen op de rest van uw site. Gebruik hiervoor eenvoudig de volgende code:

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

Zorg ervoor dat 'wp-config.php' het volledige relatieve pad naar het bestand is en plaats deze code vervolgens op elke pagina op uw niet-wordpress-site. vervang de echo door de inhoud die moet worden weergegeven voor een ingelogde gebruiker, en vervang de koptekst door wat er voor een gast moet worden weergegeven. Als de inhoud eenvoudige html is, kunt u het volgende doen:

<?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. Inleiding tot Firebase

  2. Ik wil dat mysql-tabel twee talen ondersteunt

  3. MySql:alleen-lezen opties verlenen?

  4. MySql-afsluittabel ondersteunt geen dubbele subcategorie voor verschillende ouders