WordPress Login Redirect 會員登入後導向指定頁面,直接給會員需要的訊息,省下搜尋資訊的時間。
今天要跟大家分享 WordPress 官網文件區的一段程式碼,對於網站建置會員制度的朋友來說,如果會員只是單純的限制某些文章內容的閱讀,那麼這個登入後導向指定頁面的技巧,就非常好用。WordPress 網站預設的會員登入制度,在登入後都是進到個人的控制台頁面,但是對於網站會員機智比較單純的網站,訂閱等級的會員,其實不需要什麼後台設定的動作,這時候我們就可以透過設計,讓這些訂閱會員登入後直接轉到我們設定的頁面,例如會員最新資訊頁面,或是會員專屬的頁面。
WordPress Login Redirect
- 登入後導向指定頁面的設計方式也很簡單,首先是開啟子佈景主題的 functions.php 檔案,填入以下的語法。如果沒有建置子佈景主題的網站,可以參考之前子佈景主題建置的相關文章。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/** * Redirect user after successful login. * * @param string $redirect_to URL to redirect to. * @param string $request URL the user is coming from. * @param object $user Logged user's data. * @return string */ function my_login_redirect( $redirect_to, $request, $user ) { //檢查是否有建置會員制度 if (isset($user->roles) && is_array($user->roles)) { //確認是不是訂閱會員 if (in_array('subscriber', $user->roles)) { // 導向指定頁面,程式範例是導向首頁。 $redirect_to = home_url(); } } return $redirect_to; } add_filter( 'login_redirect', 'my_login_redirect', 10, 3 ); |
- 上述的程式範例是讓訂閱會員登入以後,導向首頁。如果想要導向指定的會員專屬頁面(user-only)的話,將頁面的位置填入就可以了,範例程式碼如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function my_login_redirect( $redirect_to, $request, $user ) { //檢查是否有建置會員制度 if (isset($user->roles) && is_array($user->roles)) { //確認是不是訂閱會員 if (in_array('subscriber', $user->roles)) { // 導向指定頁面,程式範例是導向會員專屬頁面。 $redirect_to = home_url('/user-only/'); } } return $redirect_to; } add_filter( 'login_redirect', 'my_login_redirect', 10, 3 ); |