之前寫了一篇文章,介紹的是如何最佳化 WordPress 默
認登陸介面的 UI,現在我們就來侃侃 WordPress 登陸後的那些事。大家都知道的 WordPress 不管任何使用者只要在登陸後都會轉跳到後臺管理介面
/wp-admin/這個頁面,對於普通的使用者來說這是非常糟糕的,因為預設的管理介面什麼內容也沒有,那麼我們怎麼來控制 WordPress 登陸後所轉
跳的頁面呢?其實 WordPress 強大的 hook 就可以做到這點,僅僅需要在 functions.php 中寫入幾行程式碼而已。
function my_login_redirect( $redirect_to , $request , $user ){ //驗證使用者 if ( is_array ( $user ->roles ) ) { //驗證超級管理員 if ( in_array( "administrator" , $user ->roles)){ // 如果的超級管理員則返回後臺管理主頁 return home_url( '/wp-admin/' ); } else { //否則跳轉以網站首頁 return home_url(); } } } add_filter( "login_redirect" , "my_login_redirect" , 10, 3); |
雖然這樣可以把登陸後的使用者轉跳到網站首頁但是這些使用者透過連結仍然訪問到網站後臺的管理頁面,我們可以對後臺做一個訪問鎖定,只允許管理員訪問網站管理介面。
/********鎖定後臺****/ function redirect_user_login() { global $current_user , $pagenow ; get_currentuserinfo(); $valid_pages = array ( 'admin-ajax.php' , 'async-upload.php' , 'media-upload.php' ); if ( !current_user_can( 'administrator' ) && !in_array( $pagenow , $valid_pages ) ){ wp_redirect( wxd_my_account_link() ); exit ; } } add_action( 'admin_init' , 'redirect_user_login' ); |
這樣就可以限制非管理員使用者對後臺的訪問了。