Você pode definir o login do wordpress para usar uma tabela personalizada editando o config.php e adicionando estas duas linhas:
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
Onde new_user_table é a tabela do seu site e new_usermeta_table é a tabela bio do seu site (se você quiser)
A tabela personalizada precisa ter a mesma estrutura de uma tabela normal do wordpress. Portanto, para que isso funcione com a tabela do seu site existente, você precisará adicionar alguns campos e garantir que a senha seja hash da mesma maneira.
Veja como estruturar a tabela de usuários
Veja como estruturar a metatabela do usuário
Para fazer o hash das senhas corretamente no registro, inclua o arquivo wp-includes/pluggable.php e use a função
<?php $hash = wp_hash_password( $password ) ?>
Para senhas existentes que não tenham o hash correto, você precisará configurar uma redefinição de senha de e-mail.
Ou. se você quiser manter seus hashes de senha atuais (não recomendado por motivos de segurança, mas possível), você pode alterar a função de hash do wordpress. Em wp-includes/pluggable.php altere:
if ( !function_exists('wp_hash_password') ){
function wp_hash_password($password) {
//apply your own hashing structure here
return $password;
}
}
E mude:
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);
}
}
Para obter detalhes sobre wp_check_password Acesse aqui
Alternativamente
Você pode pular mexer com sua tabela de usuário personalizada e fazer com que o login do wordpress se aplique ao resto do seu site. Para fazer isso, basta usar o seguinte código:
<?php
include 'wp-config.php';
if ( is_user_logged_in() ) {
echo 'Welcome, registered user!';
} else {
header( 'Location: http://google.com' ) ;
};
?>
Certifique-se de que 'wp-config.php' seja o caminho relativo completo para o arquivo, então coloque este código em todas as páginas do seu site não wordpress. substitua o eco pelo conteúdo a ser exibido para um usuário conectado e substitua o cabeçalho pelo que for exibido para um convidado. Se o conteúdo for html simples, você pode fazer o seguinte:
<?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
};
?>