Tạo trang đăng nhập WordPress không cần Plugin
Tạo trang đăng nhập WordPress không cần Plugin đơn giản với phong cách riêng của bạn
Khi làm một trang WordPress Bạn thường phải đăng nhập với giao diện mặc định, có rất nhiều cách để tạo ra 1 trang đăng nhập riêng như cài đặt plugin, nhưng với bài viết này Mình sẽ hướng dẫn các bạn tự tạo riêng 1 trang đăng nhập của mình.
Demo :
- Đầu tiên bạn cần tạo 1 file dang-nhap.php bên trong ta đặt template name bằng : đăng nhập
<?php /* Template Name: Đăng Nhập */ ?>
- Trong file dang-nhap.php bạn có thể lấy nội dung của file Page.php mặc định trong thư mục themes của bạn. trong đó bạn tìm đoạn Vòng lặp show Content và thay bằng đoạn code này :
<?php if(is_user_logged_in()) { $user_id = get_current_user_id();$current_user = wp_get_current_user();$profile_url = get_author_posts_url($user_id);$edit_profile_url = get_edit_profile_url($user_id); ?> <div class="regted"> Bạn đã đăng nhập với tên nick <a href="<?php echo $profile_url ?>"><?php echo $current_user->display_name; ?></a> Bạn có muốn <a href="<?php echo esc_url(wp_logout_url($current_url)); ?>">Thoát</a> không ? </div> <?php } else { ?> <div class="formdangnhap"> <?php wp_login_form(); ?> </div> <?php } ?>
- Với đoạn code trên nó sẽ xét xem bạn đã đăng nhập chưa, nếu đăng nhập nó sẽ show tên user và hỏi bạn có logout không. nếu bạn chưa đăng nhập thì hiện form đăng nhập.
- Tiếp theo bạn thêm đoạn code này vào file Functions.php trong thư mục theme của bạn
// Redirect khi đăng nhập function my_login_redirect( $redirect_to, $request, $user ) { //is there a user to check? global $user; if ( isset( $user->roles ) && is_array( $user->roles ) ) { //check for admins if ( in_array( 'administrator', $user->roles ) ) { // redirect them to the default place return home_url(); } else { return home_url(); } } else { return $redirect_to; } } add_filter( 'login_redirect', 'my_login_redirect', 10, 3 ); function redirect_login_page() { $login_page = home_url( '/dang-nhap.html/' ); $page_viewed = basename($_SERVER['REQUEST_URI']); if( $page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') { wp_redirect($login_page); exit; } } add_action('init','redirect_login_page'); // Kết thúc Redirect khi đăng nhập // Kiểm tra lỗi đăng nhập function login_failed() { $login_page = home_url( '/dang-nhap.html/' ); wp_redirect( $login_page . '?login=failed' ); exit; } add_action( 'wp_login_failed', 'login_failed' ); function verify_username_password( $user, $username, $password ) { $login_page = home_url( '/dang-nhap.html/' ); if( $username == "" || $password == "" ) { wp_redirect( $login_page . "?login=empty" ); exit; } } add_filter( 'authenticate', 'verify_username_password', 1, 3);
- Thường khi bạn muốn đăng nhập WordPress bạn phải vào đường dẫn : domain/wp-admin/ hay domain/wp-login.php Đoạn trên giúp bạn chuyển tất cả link đăng nhập trên bằng đường dẫn bạn tạo.
- Bây giờ bạn vào Trang Quản Trị > Page > Add New Page
Phần tên bạn đặt là Đăng nhập và chọn Template là Đăng nhập bên trên vừa tạo
- Bây giờ bạn có thể kiểm tra kết quả bằng cách view Page vừa tạo.
Hiện tại Vnkings đang sử dụng cách này để tạo trang đăng nhập bạn có thể xem demo với link:
https://wordpress.vnkings.com/dang-nhap.html
Chúc các bạn có những giây phút vui vẻ tại web VnKings. mọi ý kiến phản hồi mình sẽ cố gắng trả lời tất cả . Xin Cảm ơn!
Bài liên quan
- Đưa trình soạn thảo WordPress 5.0 về phiên bản cũ không dùng plugin
- Thêm chức năng lọc theo Meta Fields trong Dashboard WordPress
- Sửa lỗi không hiển thị Page Template để chọn khi tạo Trang ở WordPress version 4.9
- Thêm reCAPTCHA vào form đăng nhập đăng ký WordPress
- Quản lý thời gian hoạt động cho Vip Member trong WordPress
- Hiển thị bài viết mới theo Category trong WordPress
- Tự tùy biến trang Single theo Category trong WordPress
- Tạo giao diện khác nhau cho từng Category trong WordPress
Cứ lấy nội dung trang page làm mặc định rồi thay đoạn giữa là được à Admin
Đúng rồi bạn, vì lấy Page mặc định thì có css luôn của theme, bạn đỡ phải css nó.
Admin cho mình hỏi, khi thoát đăng nhập thì nó hiện cái popup trong trang quản trị admin, cái popup đó giao diện của trang login(nó có phần header và footer). Mình muốn chỉ có form login không thì làm sao vậy admin
Trang đăng nhập khi bạn logout ở quản trị đó nó mặc định lấy template đăng nhập, bạn chỉ việc bỏ header và footer trong page đăng nhập của bạn đi là được.
🙁 Tại mình muốn trang đăng nhập có header và footer còn cái popup thì không có. Không còn cách nào khác hả bạn?
Ok thanks admin nhé, sau 1 hồi suy nghĩ mình bỏ
là chạy phù hợp theo ý mình.
good idea! Chúc mừng bạn 🙂
Thanks admin. 😀
Chỉ hiện thị mỗi head anh xem giúp em
Bạn vào file config.php. phần debug chọn True, rồi ra F5 trang lỗi của bạn xem nó báo lỗi code dòng nào ?
vong lặp show content từ đoạn nào đến đoạn nào bạn oi
Bạn có nhầm lẫn gì không, trong bài này không có vòng lặp nào bạn nhé
Bạn ơi mình muốn khi đăng nhập thành công thì tự động chuyển sang một trang khác không phải trang chủ thì làm thế nào vậy bạn. Code của bạn trên mình cài khi đăng nhập nó tự chuyển sang trang chủ
ad ơi code phần đăng nhập vào phần nào? em không hiểu
Bạn tạo 1 file riêng nhé, nó là file template đặt ngang hàng với các file trong theme
Cho mình hỏi file page của themes đoạn vòng lặp show content nó ở chỗ nào?
Bạn mở file single copy nguyên file đó sang 1 file khác, và đoạn nào có
thì bạn page vào bên dưới nó bạn ạ
Admin ơi cho mình hỏi, làm thế nào thì khi mình đăng nhập, cái nút đăng kí biến mất và hiện thông tin thành viên lên thay. giống như vnkings ý ạ
em bị quên mật khẩu mà ko bit làm sao cả
Bạn có thể vào Cơ sở dữ liệu, vào bảng wp_users, tìm đến user của bạn rồi đổi password với mã MD5 là: e10adc3949ba59abbe56e057f20f883e
Sau đó bạn có thể đăng nhập với password là: 123456
Admin cho mình hỏi nếu mình chỉ muốn giao diện đăng nhập mới này cho thành viên thôi. Admin vẫn đăng nhập bằng wp-login mặc định của WordPress thì làm thế nào ạ
Khi chưa đăng nhập thì hệ thống biết sao được bạn là admin hay thành viên bạn!
Quá hay. Cám ơn bạn nhiều.
em có tạo 1 file như chỉ nhưng trong page không hiện trang đó. Mong chỉ cụ thể mình bỏ chỗ nào trong thư mục
Em muốn tạo 1 form đăng nhập cho user sau khi đăng nhập thì user ko log vào được trang quản trị mà chỉ có quyền chỉnh sữa thông tin user đó ở bên ngoài thôi
a cho e hỏi mình có thể tạo một trang thông tin nội bộ trong wordpress được không a
Chào em, được em nhé, em có thể tạo một page, rồi dùng chức năng thành viên đăng nhập mới cho xem nội dung.
Mình loay hoay mãi mà vẫn không hiểu đưa nó vào form đăng nhập. với form đăng ký thì dễ vì chỉ cần bỏ vào phần if là xong, còn form đăng nhập không biết đặt mã ở đâu luôn. huhu
Add cho hỏi, Mình có sử dụng Plugin thay đổi Link đăng nhập (Ví dụ: https://wordpress.vnkings.com/v123456r), Để bảo mật, Nếu sử dụng cách này thì sẽ bị lộ Link, Hóa ra cái Plugin kia vô tác dụng…Có cách nào tạo Form đăng nhập cho Member riêng ko? Hay có cách nào khác?
CHào ad code bên trên mà muốn thêm cái nút quên mật khẩu và tạo trang quên mật khẩu thế nào nhỉ ad.
Chào bạn, hiện WordPress có sẵn 1 Page quên mật khẩu là:
domain/wp-login.php?action=lostpassword
Hiện Vnfaster sẽ sớm có bài viết tạo Page riêng này.
ad cho mình hỏi khi mình đăng nhập bằng “tenwebsite/wp-admin” thì nó chuyển sang url “tenwebsite/dang-nhap” nhưng lại có thêm ?login=empty ở phía sau.. làm sao để xoá nó ạ
Ko biết nhiều về code đang tim tòi thì gặp đúng bài này. Cảm ơn bạn.