運用 wp_logout_url() 加入 WordPress 登出連結至選單

前言

WordPress如果沒有裝 Woocommerce 或者其他會員前端的外掛插件,其實就會比較麻煩,因為你需要在前端畫面做很多連結轉來轉去。
尤其當你今天需要加入一個簡單的「登出」選單,都很麻煩,加上以前有許多連結或許都失效了(例如 /wp-login?action=logout)等等。
以下就是教大家如何簡單寫一點點的程式,在選單或任何地方加入「登出」這個選項。

利用 wp_logout_url()

首先,先將登出的選單加入至主選單中,此時連結可以設定為"#"即可。
user-logout

再來,到佈景主題編輯器 > functions.php 置入以下語法:

// 選單隱藏顯示
add_action('wp_head', 'show_hide_frontend_menu');
function show_hide_frontend_menu(){
	if ( is_user_logged_in() ) {
		?>
			<script>
				jQuery(function($){
					$("li.menu-user-logout a").attr('href', '<?php echo wp_logout_url(); ?>');
				})
			</script>
		<?php
	}
}

其中裡面的 wp_logout_url(); 就是登出網址,而上面的意思就是 “如果會員是登入狀態,將登出選單的連結改為登出連結“。
這時,你就可以在選單當中直接點擊登出按鈕登出會員囉!
然而,登出後你會發現它被導到後台的登入畫面,這時你需要做轉址,將以下語法置入在以上的語法下面:

// 登出轉址
add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
  wp_safe_redirect( home_url() );
  exit;
}

這樣一來,登出後,它會自動被導向到首頁了!

相關文章