有越來越多的朋友開始為WordPress添加用戶中心,來增加網(wǎng)站的功能,留住更多的用戶,對WordPress 高級用戶來說,這可能不是什么問題,可是對于 WordPress 新手來說,開發(fā)創(chuàng)建前端用戶中心的任務(wù)就有點復雜了。下面我把開發(fā)WordPress用戶中心過程中遇到的較多的一些問題總結(jié)一下,供有開發(fā)前端用戶中心需求的朋友們參考。
只有管理員才能訪問儀表盤,其他用戶重定向到用戶中心
有了前端用戶中心,非管理員用戶是沒有必要訪問默認的儀表盤的,登錄后直接跳轉(zhuǎn)到前端用戶中心就可以了。
add_action( 'admin_init', 'redirect_non_admin_users' );
function redirect_non_admin_users() {
if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
wp_redirect( site_url("/me/") ); #這里的“/me/”是前端用戶中心的地址。
exit;
}
}
上面的代碼需要注意的是“$_SERVER['PHP_SELF']”獲取的是域名后面的路徑地址,如果你的 WordPress 是安裝在子目錄的,那么前面的“/wp-admin/admin-ajax.php” 也需要把子目錄的名稱加上,否則 Ajax 請求會驗證不通過。
只對管理員顯示工具條
開發(fā)了前端用戶中心,后臺的所有功能當然是不希望用戶看到的,可是管理工具條確實又是一個非常好用的功能,我們只需要對非管理用戶隱藏工具條就可以了。
if (!current_user_can('manage_options')) {
add_filter('show_admin_bar', '__return_false');
}
修改登錄頁面為自定義登陸頁面
需要注意的是:不要直接把登錄鏈接鏈接到前端用戶中心登錄頁面,這樣在退出用戶中心的時候,注銷程序會自動把頁面跳轉(zhuǎn)到默認的登錄頁面。
function wizhi_login_page( $login_url, $redirect ) {
$new_login_url = home_url('ucenter') . '?redirect_to=' . $redirect;
return $new_login_url;
}
add_filter( 'login_url', 'wizhi_login_page', 10, 2 );
處理完了以上幾個頁面之后,WordPress后臺基本上就對用戶隱藏了,可是還有一個問題,怎么隱藏掉 wp-login.php 頁面,用戶直接訪問 wp-login.php 還是可以訪問默認登錄注冊頁面的,知道的朋友可以在評論里面給大家分享一下。


改進版,去掉寫死的域名