運用 is_user_logged_in() 判斷使用者登入狀態並觸發動作

WordPress 可以用什麼方式來判斷使用者登入狀態?

其實 WordPress 本身就已經有會員的功能在裡面,而如果你需要判斷當前的使用者是否是登入 WordPress 的狀態,最簡單的方式就是透過外掛。
可是如果你要做的事情是一個極其簡單的事情時,裝了外掛又好像太過於小題大作,而且還可能導致網站越來越肥大。
這時你就會需要用到 WordPress 的Function API,也就是說 WordPress 早就將許多常常會用到的東西寫成一個 function,只要你會一點程式基礎,都可以暢通無阻的使用它。
以下我們用「登入後隱藏選單」這件事情來做範例。

使用 is_user_logged_in

is_user_logged_in(); 就是一組 WordPress 的function,它是用來判斷使用者登入與否。
第一步: 給予選單一個class名稱

is_user_logged_in is_user_logged_in

當你有了class的時候,一切都好辦了!
接著你要做的事情是要用jQuery或者CSS來將這個選單隱藏或移除。
因此你會寫:

jQuery(function($){
	$(".menu-registration").remove();
})

但是此時加入後不管有沒有登入,這個選單都是被移除的。
因此你需要加入判斷,這時你需要將整個語法都放在佈景主題編輯器 functions.php 裡面,語法如下(裡面script的<>須改為半形的<>):

// 選單隱藏顯示
add_action('wp_head', 'show_hide_frontend_menu');
function show_hide_frontend_menu(){
	if ( is_user_logged_in() ) {
		?>
			<script>
				jQuery(function($){
					$(".menu-registration").remove();
				})
			</script>
		<?php
	}
}

接著你就會發現,有登入的人,該選單就會被隱藏掉,沒有登入的人則會看見。
是不是非常好用呢?
參考文件: https://developer.wordpress.org/reference/functions/is_user_logged_in/

相關文章