程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> WordPress中登陸後關閉登陸頁面及設置用戶不可見欄目

WordPress中登陸後關閉登陸頁面及設置用戶不可見欄目

編輯:PHP綜合

用戶登錄後關閉登錄頁面
WordPress默認的登錄頁面是:http://WP目錄/wp-login.php,登錄後會自動跳轉到:http://WP目錄/wp-admin。現在問題來了,如果用戶已經登錄,但是它又打開wp-login.php頁面,會出現什麼樣的情況呢?答案是,WordPress不會做任何處理,還是直接給你顯示登錄窗口:

20151231173104519.png (333×339)

面對如此冰冷的登錄框,用戶會感到困惑,我剛剛不是已經登錄了嗎?怎麼還要我輸入用戶名和密碼?所以,用戶登錄後,我們不該讓用戶再看到登錄框。解決此問題的辦法有兩個:

去除登錄鏈接

     確保頁面中不再出現wp-login.php的鏈接。如用戶沒有登錄,網頁中我們可以這樣提示:

20151231173123162.png (126×40)

用戶登錄後,我們將上面的登錄和注冊鏈接刪除,換成:

20151231173139540.png (164×43)

 這樣不僅可以讓用戶對是否已經登錄一目了然,而且不會誤點擊wp-login.php進入登錄界面。PHP編程只需用到WordPress的is_user_logged_in()函數判斷用戶是否已經登錄就可以實現。

wp-login.php做跳轉

     有些時候,用戶登錄後還是會偶然點擊到wp-login.php登錄鏈接,如浏覽器的地址欄。我們這時就該做些補救措施了,不要不作為讓登錄框顯示在用戶面前。這裡介紹的方法是,當用戶已經登錄,但是又打開wp-login.php鏈接,我們就讓他跳轉到後台首頁wp-admin,具體方法是,在當前主題的functions.php中加入以下php代碼:

function redirect_logged_user() {
 if(is_user_logged_in() && (empty($_GET['action']) || $_GET['action'] == 'login')) {
  wp_redirect( admin_url() );
  exit;
 }
}
add_action( 'login_init', 'redirect_logged_user' );


創建對用戶不可見的自定義欄目
如果你是一個插件或者主題開發者,應該經常會使用自定義欄目(或者叫自定義字段)來存儲你的插件或主題的相關參數,有趣的是,在WordPress後台的文章編輯頁面或使用the_meta()模板函數時,WordPress不會顯示名稱以 _(下劃線)開頭的自定義欄目。

對一些不想讓用戶看到,更不想讓用戶修改的自定義欄目,我們可以使用此技巧,不僅讓文章編輯頁面的自定義欄目簡約些,而且不會讓用戶看到不熟悉的自定義欄目而感到困惑,甚至胡亂修改。下面是個使用范例:

<?php add_post_meta( 68, '_ludou', '露兜博客', true ); ?>

這樣就給id為68的文章添加了名稱為 _ludou,值為露兜博客的唯一的自定義欄目,而且在文章編輯頁面用戶也看不到。平常情況下,我們可能是這樣使用的,這樣在文章編輯頁的自定義了欄目中就能看到 ludou 字段:

<?php add_post_meta( 68, 'ludou', '露兜博客', true ); ?>

另外,當自定義欄目的值是一個數組時,在文章編輯頁面,該欄目對用戶也是不可見的,即使自定義欄目的名稱前沒加下劃線。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved