如何檢查使用者是否已登入WordPress(PHP函式)

如何檢查使用者是否已登入WordPress(PHP函式)

正在開發 WordPress,想知道如何檢查使用者是否已登入?請繼續閱讀有用的使用者 PHP 程式碼片段。

有時,您想新增一些功能,或者只向已登入的使用者顯示一些內容。使用 WordPress 內建的 is_user_logged_in() 函式就可以輕鬆做到這一點。本小貼士將向您展示如何檢查使用者是否已登入 WordPress。

要使用這個函式,您必須熟悉 PHP 程式設計。如果您正在編輯一個主題,我們建議您先建立一個子主題。這樣您就可以編輯主題中的程式碼,而不會在父主題更新時中斷。此外,您還可以使用自定義外掛或 Code Snippets 外掛新增程式碼。

檢查使用者是否登入 WordPress 函式

下面是一個使用 is_user_logged_in() 函式為已登入使用者顯示登出連結和為已登出使用者顯示登入連結的示例。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
if ( is_user_logged_in() ) {
echo 'Welcome, logged in user. <a href="'.wp_logout_url().'">Click here to logout</a>.';
}else{
echo 'Please login by <a href="'.wp_login_url().'">clicking here</a>.'
}
<?php if ( is_user_logged_in() ) { echo 'Welcome, logged in user. <a href="'.wp_logout_url().'">Click here to logout</a>.'; }else{ echo 'Please login by <a href="'.wp_login_url().'">clicking here</a>.' }
<?php 
if ( is_user_logged_in() ) {
 echo 'Welcome, logged in user. <a href="'.wp_logout_url().'">Click here to logout</a>.';
}else{
 echo 'Please login by <a href="'.wp_login_url().'">clicking here</a>.'
}

您可以在主題的 function.php 中使用此功能,為登入使用者新增特定功能。它還可以用於主題的 index.php、archive.php、single.php 等,為登入使用者提供各種功能。

檢查當前使用者是否為 WordPress 中的管理員

如果只想為已登入的管理員新增功能,可以使用函式 current_user_can() 。通過在 if 語句中使用 current_user_can('administrator'),可以檢查當前使用者是否是網站管理員。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
if( current_user_can('administrator') ) {
echo 'This will display for WordPress admins only.';
};
<?php if( current_user_can('administrator') ) { echo 'This will display for WordPress admins only.'; };
<?php
if( current_user_can('administrator') ) {
 echo 'This will display for WordPress admins only.';
};

此外,您還可以針對使用者的特定功能進行設定。

如果您在網站上建立了自定義角色,這將非常有用。有很多 WordPress 許可權可以作為 if 語句的目標。例如,manage_options 適合針對管理員,而 edit_posts 適合針對編輯。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
if( current_user_can('manage_options') ) {
echo 'This user can manage WordPress options. (Settings Page)';
};
<?php if( current_user_can('manage_options') ) { echo 'This user can manage WordPress options. (Settings Page)'; };
<?php
if( current_user_can('manage_options') ) {
 echo 'This user can manage WordPress options. (Settings Page)';
};

此外,如果您不想使用 PHP,還可以在使用者登入時使用 CSS 更改網站的樣式。當使用者登入時,WordPress 會在網站的 body 標籤中新增 “logged-in” 類。

例如,下面的程式碼段將在使用者登入時更改網站的背景顏色。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/* Change the background color for logged in users */
body.logged-in {
background-color: #BEBEBE
}
/* Change the background color for logged in users */ body.logged-in { background-color: #BEBEBE }
/* Change the background color for logged in users */
body.logged-in {
 background-color: #BEBEBE
}

除了在主題和 functions.php 中使用 is_user_logged_in(),還可以在自定義 WordPress 外掛中加入此功能,以達到同樣的效果。

評論留言