Přihlašování do wordpressu můžete nastavit tak, aby používala vlastní tabulku úpravou souboru config.php a přidáním těchto dvou řádků:
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
Kde new_user_table je tabulka vašeho webu a new_usermeta_table je tabulka bio vašeho webu (pokud ji chcete)
Vlastní tabulka musí mít stejnou strukturu jako normální tabulka wordpress. Aby to fungovalo s tabulkou vašeho stávajícího webu, budete muset přidat některá pole a ujistit se, že heslo je zahašováno stejným způsobem.
Zde je návod, jak strukturovat tabulku uživatelů
Zde je návod, jak strukturovat uživatelskou metatabulku
Pro správnou hašování hesel při registraci vložte soubor wp-includes/pluggable.php a použijte funkci<?php $hash = wp_hash_password( $password ) ?>
U stávajících hesel, která nejsou správně hašována, budete muset nastavit obnovení hesla e-mailu.
Nebo. pokud si chcete ponechat svá aktuální hash hesla (nedoporučuje se to z bezpečnostních důvodů, ale je to proveditelné), můžete změnit funkci hash wordpress. V souboru wp-includes/pluggable.php změňte:
if ( !function_exists('wp_hash_password') ){
function wp_hash_password($password) {
//apply your own hashing structure here
return $password;
}
}
A změna:
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);
}
}
Podrobnosti o wp_check_password Přejděte sem
Alternativně
Můžete přeskočit pohrávání si s vlastní uživatelskou tabulkou a nechat přihlášení wordpress aplikovat na zbytek vašeho webu. Chcete-li to provést, jednoduše použijte následující kód:
<?php
include 'wp-config.php';
if ( is_user_logged_in() ) {
echo 'Welcome, registered user!';
} else {
header( 'Location: http://google.com' ) ;
};
?>
Ujistěte se, že 'wp-config.php' je úplná relativní cesta k souboru, poté umístěte tento kód na každou stránku na vašem webu, který není wordpress. nahraďte echo jakýmkoli obsahem, který se má zobrazit přihlášenému uživateli, a záhlaví nahraďte tím, co se má zobrazit hostovi. Pokud je obsah jednoduchý html, můžete provést následující:
<?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
};
?>