Javascript 如何在wordpress上使用$\会话将登录更改为注销按钮?

Javascript 如何在wordpress上使用$\会话将登录更改为注销按钮?,javascript,php,html,css,wordpress,Javascript,Php,Html,Css,Wordpress,因此,我在Wordpress上有一个自定义登录页面,它连接到我的用户数据库,并检查所有信息是否正确。这是login.php: <?php // Start the session session_start(); ?> <!DOCTYPE html> <html> <meta charset="utf-8"> <title>Login</title> <link rel="stylesh

因此,我在Wordpress上有一个自定义登录页面,它连接到我的用户数据库,并检查所有信息是否正确。这是login.php:


<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>Login</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<?php
require('db.php');
// If form submitted, insert values into the database.
if (isset($_POST['email'])){
        // removes backslashes
    $email = stripslashes($_REQUEST['email']);
        //escapes special characters in a string
    $email = mysqli_real_escape_string($conn,$email);
    $password = stripslashes($_REQUEST['password']);
    $password = mysqli_real_escape_string($conn,$password);
    //Checking is user existing in the database or not
        $query = "SELECT * FROM `users` WHERE email='$email'
and password='".md5($password)."'";
    $result = mysqli_query($conn,$query) or die(mysql_error());
    $rows = mysqli_num_rows($result);
        if($rows==1){
        $_SESSION['email'] = $email;
            // Redirect user to index.php
        header("Location: index.php");
         }else{
    echo "<div class='form'>
<h3>Email/password is incorrect.</h3>
<br/>Click here to <a href='../login/'>Login</a></div>";
    }
    }else{
?>
<div class="form">
<!-- <h1>Log In</h1> -->
<form action="" method="post" name="login">
<input type="text" name="email" placeholder="Email" required />
<input type="password" name="password" placeholder="Password" required />
<br>
<input name="submit" type="submit" value="Login" />
</form>
<p>Not registered yet? <a href='../register/'>Register Here</a></p>
</div>
<?php } ?>
</body>
</html>

登录

您可以使用内置的WordPress函数is_user_logged_in(),或者您的登录是否也使用数据库中的自定义表而不是WordPress user表wp_user

<?php
if ( is_user_logged_in() ) {
    echo '<a href="../wp-login.php?action=logout">Login out</a>';
} else {
    echo '<a href="../login/">Login</a>';
}
?>
一个将其添加到wordpress菜单的函数,您需要设置其样式:

add_filter('wp_nav_menu_items', 'button_login_logout', 10, 2);
function button_login_logout() {
    ob_start();
    if (isset($_SESSION['email'])) : 
    ?>
        <a role="button" href="logoutlink">Log Out</a>. 
    <?php 
    else : 
    ?>
        <a role="button" href="loginlink">Log In</a> 
    <?php 
    endif;
 
    return ob_get_clean();
}
add_filter('wp_nav_菜单项','button_login_logout',10,2);
功能按钮\u登录\u注销(){
ob_start();
如果(isset($_会话['email']):
?>
. 

但这将检查用户是否登录Wordpress,对吗?我需要检查用户是否在我的MySQL数据库中注册OK不确定您是如何构建在登录时创建会话的函数的,但添加了一种如何检查会话是否存在的功能Nice,我理解,但在标题按钮从登录到注销后如何更改?Wi在上面的条件下,我添加了else语句,它的作用是,如果你的会话存在,你可以放置你的登录按钮代码,或者放置你的注销按钮。我知道,但我想问的是,我不知道如何使用elseNever以明文存储密码或使用M在标题上放置登录或注销按钮D5/Sa1!只存储使用PHP创建的密码散列,您可以使用它来验证。看看这个帖子:了解更多关于您的错误。只为旧API工作。请考虑切换错误模式。
add_filter('wp_nav_menu_items', 'button_login_logout', 10, 2);
function button_login_logout() {
    ob_start();
    if (isset($_SESSION['email'])) : 
    ?>
        <a role="button" href="logoutlink">Log Out</a>. 
    <?php 
    else : 
    ?>
        <a role="button" href="loginlink">Log In</a> 
    <?php 
    endif;
 
    return ob_get_clean();
}