2011-12-19 62 views
8

Trong wordpress tôi đang cố gắng để buộc người dùng đăng nhập đầu tiên trước khi nhìn thấy bất cứ điều gì. Có nghĩa là tôi muốn người dùng của tôi đăng nhập lần đầu tiên để xem bất kỳ trang, bài đăng hoặc lưu trữ nào và chỉ họ mới có thể truy cập trang Hỏi đáp. Tôi đang cố gắng với mã dưới đây nhưng vấn đề là ngay sau khi tôi đăng nhập, nó chuyển hướng tôi một lần nữa để đăng nhập trang.Wordpress buộc người dùng đăng nhập trước khi xem bất kỳ nội dung trang web

However my site structure would be like below and in same manner I want this code to work ...

// Force user to login on welcome 
function my_force_login() { 
global $post; 

    if (is_single() || is_front_page() || is_page() && !is_page('login') && !is_user_logged_in()){ 
     auth_redirect(); 
    } 
} 

Welcomd-Login screen (like facebook) -Home page -Blog -About -contact -FAQ

Vì vậy, tôi muốn cho phép người truy cập chỉ có thể xem màn hình đăng nhập Chào mừng và Hỏi đáp, trang liên hệ để xem phần còn lại của trang web tôi muốn buộc họ phải đăng nhập ..

Tôi cần sự trợ giúp tuyệt vời của bạn .. Cảm ơn rất nhiều trước ..

Trả lời

8

Tôi nghĩ rằng bạn đang thiếu một ngoặc đơn:

if ((is_single() || is_front_page() || is_page()) 
     && !is_page('login') && !is_user_logged_in()){ 
    auth_redirect(); 
} 
+0

Cảm ơn rất nhiều. Nó hoạt động như sự quyến rũ. Tôi vừa thêm is_archive() để ngăn chặn danh mục và danh sách lưu trữ. Cảm ơn rất nhiều. Tôi sẽ quay trở lại nếu cần một số trợ giúp thêm cho cùng một .. Cảm ơn một lần nữa –

1

Có một plugin bạn có thể sử dụng cho việc này. Private Only

+0

Privet Chỉ sẽ làm việc nếu tôi muốn sử dụng wp-login.php và không trang đăng nhập của riêng tôi. Ở đây tôi muốn sử dụng màn hình đăng nhập như màn hình đăng nhập chủ đề của mình vì vậy tôi đang sử dụng '! Is_page ('login')' Plugin đó vẫn tiếp tục n trong vòng lặp chuyển hướng .. Bởi vì tôi có chuyển hướng của riêng mình sau khi đăng nhập và vv .. –

+0

Cảm ơn bạn .. chính xác những gì tôi muốn – Christine

1

Cách dễ dàng

// Require login for site 
get_currentuserinfo(); 
global $user_ID; 
if ($user_ID == '') { 
    header('Location: /wp-login.php'); exit(); 
} 
+0

Có vẻ hạn chế. Bạn chỉ có thể sử dụng tính năng này trên các mẫu, chứ không phải trên trang web vì nó có thể gây ra một vòng lặp. – Jake

Các vấn đề liên quan