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