Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cho việc đăng nhập trang web cũng hoạt động trên WordPress

Bạn có thể đặt đăng nhập wordpress để sử dụng bảng tùy chỉnh bằng cách chỉnh sửa tệp config.php và thêm hai dòng sau:

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

Trong đó new_user_table là bảng trên trang web của bạn và new_usermeta_table là bảng tiểu sử trên trang web của bạn (nếu bạn muốn có)

Bảng tùy chỉnh cần có cấu trúc giống như bảng wordpress thông thường. Vì vậy, để điều này hoạt động với bảng của trang web hiện tại của bạn, bạn sẽ phải thêm một số trường và đảm bảo mật khẩu được băm theo cùng một cách.

Đây là cách cấu trúc bảng người dùng

Đây là cách cấu trúc bảng meta người dùng

Để băm mật khẩu chính xác khi đăng ký, hãy bao gồm tệp wp-include / pluggable.php và sử dụng hàm
<?php $hash = wp_hash_password( $password ) ?>

Đối với các mật khẩu hiện có không được băm chính xác, bạn sẽ phải thiết lập đặt lại mật khẩu email.

Hoặc. nếu bạn muốn giữ lại hàm băm mật khẩu hiện tại của mình (không được khuyến nghị vì lý do bảo mật nhưng có thể thực hiện được), bạn có thể thay đổi hàm băm của wordpress. Trong wp-include / pluggable.php thay đổi:

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

Và thay đổi:

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

Để biết chi tiết về wp_check_password, hãy Truy cập vào đây

Ngoài ra

Bạn có thể bỏ qua việc lộn xộn với bảng người dùng tùy chỉnh của mình và áp dụng đăng nhập wordpress cho phần còn lại của trang web của bạn. Để thực hiện việc này, chỉ cần sử dụng mã sau:

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

Đảm bảo rằng 'wp-config.php' là đường dẫn liên quan đầy đủ đến tệp, sau đó đặt mã này trong mọi trang trên trang web không phải wordpress của bạn. thay thế echo bằng bất kỳ nội dung nào sẽ được hiển thị cho người dùng đã đăng nhập và thay thế tiêu đề bằng bất kỳ nội dung nào sẽ được hiển thị cho khách. Nếu nội dung là html đơn giản, bạn có thể làm như sau:

<?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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn MySQL lấy dấu phẩy giá trị được phân tách từ bảng chi tiết chính

  2. Kế hoạch thực thi không hiệu quả do MySQL InnoDB thực hiện

  3. Không thể sử dụng bộ ký tự utf8mb4 với CloudSQL trên AppEngine Python

  4. ngoại lệ con trỏ null khi cố gắng truy cập DatabaseHelper trong cơ sở dữ liệu được sao chép từ nội dung sang dữ liệu \ data \

  5. Bí danh cho mệnh đề GROUP BY?