2016-02-18 60 views
2

我有一個wordpress網站,它使用buddypress和bbpress。我需要隱藏/重定向所有尚未登錄的人的buddypress和bbpress頁面。因此,如果有人登陸成員頁面,個人資料頁面或任何論壇主題,需要將他們重定向到註冊頁面。重定向從特定頁面登出的用戶

我試過可能是5個插件,他們都造成了像404錯誤,不工作或只是白頁的問題。

的URL結構是這樣的:

www.example.com/members 
www.example.com/members/luke 
www.example.com/forums 
www.example.com/forums/forum/general-chat 

有誰知道我能做到這一點無需插件?

回答

1

theme/functions.phpbp-custom.php試試這個是什麼:

function lukedi_private_check() { 

    if (! is_admin() && ! is_user_logged_in()) { 

     if (is_front_page() || is_home() || bp_is_register_page() || bp_is_activation_page()) 
      return; 

     $redirect_url = trailingslashit(site_url()); // change this to whatever you need 

     // member page 
     if (bp_is_user()) 
      bp_core_redirect($redirect_url); 

     // bbPress 
     if(is_bbpress()) 
      bp_core_redirect($redirect_url); 

     // members loop 
     $bp_current_component = bp_current_component(); 

     if (false != $bp_current_component) { 

      if ('members' == $bp_current_component) 
       bp_core_redirect($redirect_url); 

     } 

    } 
} 
add_action('bp_ready', 'lukedi_private_check'); 
+0

這給了我的網站一個白頁,PHP錯誤的地方也許? – LukeD1uk

+0

對不起,額外的支架。編輯並修復。而且你需要調整重定向網址以指向任何你想要的。目前轉到主頁。 – shanebp

+0

這工作,謝謝隊友。 – LukeD1uk

2

你必須從型材loop.php文件

your-child-theme/members/single/profile/profile-loop.php 

在文件的第一行子主題中修改,添加

<?php if (is_user_logged_in() ) : ?> 

在文件的結尾,最後ENDIF最後do_action這之間插入:

<?php else : ?> 
<?php echo 「<div style=’width: 600px;height:25px; padding: 4px; border: 3px solid #ff0000; text-align: center; font-style:bold; font-size: 1.3em;’> You must be logged in to view a member profile</div>」; ?> 
<?php endif; ?> 

更改DIV內嵌樣式whatev呃你需要相應的主題。該示例適用於bp-default。

如果你不能做到這一點,那就試試這個插件, plugin

試試這個,但請務必將網址更改爲你想

add_action('admin_init', 'redirect_non_logged_users_to_specific_page'); 

function redirect_non_logged_users_to_specific_page() { 

if (!is_user_logged_in() && is_page('add page slug or i.d here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php') { 

wp_redirect('http://www.example.dev/page/'); 
    exit; 
} 
+0

我不認爲這是我想要的。我不想重定向到任何人的個人資料。我想讓非登錄用戶重定向到註冊頁面,如果他們嘗試訪問特定的頁面,如上所述。 – LukeD1uk

+0

是的。因此,您需要將我的答案添加到您必須登錄才能看到的頁面中。然後將它們重定向到任何你想要的地方。 – wuno

+0

閱讀我的答案的底部,我更新了它。 – wuno

相關問題