sql >> Databasteknik >  >> RDS >> Mysql

Få webbplatsinloggning att fungera på WordPress också

Du kan ställa in Wordpress-inloggningen för att använda en anpassad tabell genom att redigera config.php och lägga till dessa två rader:

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

Där new_user_table är din webbplatss tabell och new_usermeta_table är din webbplatss biotabell (om du vill ha en)

Den anpassade tabellen måste ha samma struktur som en vanlig wordpress-tabell. Så för att få detta att fungera med din befintliga webbplatss tabell måste du lägga till några fält och se till att lösenordet hashas på samma sätt.

Så här strukturerar du användartabellen

Så här strukturerar du användarmetatabellen

För att hasha lösenorden korrekt vid registrering, inkludera filen wp-includes/pluggable.php och använd funktionen
<?php $hash = wp_hash_password( $password ) ?>

För befintliga lösenord som inte hashas korrekt måste du ställa in en e-postlösenordsåterställning.

Eller. om du vill behålla dina nuvarande hash-lösenord (rekommenderas inte av säkerhetsskäl men genomförbart) kan du ändra hashfunktionen för wordpress. I wp-includes/pluggable.php ändra:

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

Och ändra:

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

För information om wp_check_password Gå hit

Alternativt

Du kan hoppa över att bråka med din anpassade användartabell och låta inloggningen för wordpress tillämpas på resten av din webbplats. För att göra detta, använd helt enkelt följande kod:

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

Se till att 'wp-config.php' är den fullständiga relativa sökvägen till filen, placera sedan denna kod på varje sida på din icke-wordpress-webbplats. ersätt ekot med det innehåll som ska visas för en inloggad användare, och ersätt rubriken med det som ska visas för en gäst. Om innehållet är enkelt html kan du göra följande:

<?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. Hur får man data från en mysql-databas med javascript?

  2. Hur använder man REGEXP med escape-sekvenser som ordgräns?

  3. Rails 3 ActiveRecord:UNION

  4. 4 viktiga databasövervakningsaktiviteter som varje DBA bör känna till