如何在不使用插件的情況下在 WordPress 中創建登錄頁面

已發表: 2022-01-03

如何在沒有插件的情況下在 WordPress 中創建登錄頁面 您是否正在尋找在 WordPress 中創建登錄頁面的最佳方式,無需插件且無需自定義默認 WordPress 登錄頁面? 如果您想在不使用流行的 WordPress 登錄插件的情況下在 WordPress 中創建登錄頁面,您可以通過在短代碼或自定義頁面模板中添加登錄代碼來實現。

在本教程中,我將演示如何使用簡碼函數在 WordPress 中創建登錄頁面,以及如何使用自定義頁面模板中的登錄函數在 WordPress 中創建登錄頁面。

這些方式中的每一種都應該與任何 WordPress 主題或任何 WordPress 託管環境無縫協作。

在沒有插件的 WordPress 中創建登錄頁面

本教程的目標是幫助您創建一個登錄頁面,例如默認的 WordPress 登錄,允許您在登錄後訪問 WordPress 儀表板。

理想情況下,這個自定義登錄頁面應該是您的站點用戶登錄的前端登錄頁面。正如我在介紹中提到的,我們將在本教程中介紹兩種方式;

  1. 登錄頁面簡碼
  2. 自定義頁面模板登錄

創建登錄頁面簡碼

當我們想在 WordPress 的任何地方創建登錄頁面時,第一步是使用簡碼。 短代碼可以添加到任何頁面或任何帖子,甚至是小部件和自定義頁面模板。

在這一步中,我們將為登錄表單創建一個簡碼,用於在 WordPress 的任何頁面或帖子上發布登錄表單。 這種方法使用戶可以靈活地在其站點的任何部分創建登錄頁面。

要創建短代碼,我們將使用以下代碼:

 // 創建登錄表單簡碼

功能 njengah_add_login_shortcode() {

                add_shortcode('njengah-login-form', 'njengah_login_form_shortcode');

}

我們在函數中添加了短代碼,以便我們稍後可以對其進行初始化。 add_shortcode 函數在 WordPress 中創建一個簡碼。 add_shortcode() 函數的一般表達式如下:

 add_shortcode( 字符串 $tag, 可調用 $callback )

如您所見,此函數有兩個參數,如下所示:

範圍描述
$標籤這是將在帖子或頁面編輯器中用於發布短代碼的文本。 例如,在這種情況下,我們將其命名為“njengah-login-form”。 當我們在頁面上添加它時,我們會將它括在方括號中:[njengah-login-form]
$回調這是將呈現短代碼功能的回調函數。 例如,在這種情況下,我們將在此回調函數中添加顯示登錄表單的代碼,如下面的代碼所示

 //第二步:短代碼回調
功能 njengah_login_form_shortcode() {
	
	if (is_user_logged_in())
		
	返回'<p>歡迎。 您已登錄!</p>'; ?> 
		
<div class ="njengah-login-tutorial" >  
		
	<?php 返回 wp_login_form( 
		大批( 
			'迴聲' => 假,
			'label_username' => __('你的用戶名'),
			'label_password' => __( '你的密碼' ),
			'label_remember' => __('記住我')
			        )
	); ?> 
		
            </div>
  <?php 
   }

如果您仔細檢查代碼,您會注意到我們已經使用該功能來檢查用戶是否已登錄,正如我在有關如何檢查用戶是否已登錄 WordPress的帖子中所解釋的那樣。

如果用戶沒有登錄,我們使用 wp_login_form() 函數來顯示登錄表單。 如果用戶已登錄,我們有條件地在該頁面上顯示歡迎消息,而不是顯示登錄表單。

WP 函數 wp_login_form()

wp_login_form() 是一個 WordPress 函數,它為主題開發人員提供了一種在任何地方顯示 WordPress 表單的方法。 這個函數一般可以表示如下:

 wp_login_form(數組 $args = 數組())

$args 可以是控製表單顯示方式的選項數組。

以下是您可以在數組中使用的參數來更改表單的顯示方式。

參數 $arg 描述
迴聲如果顯示登錄表單或返回表單 HTML 代碼。 默認為真(迴聲)。
重定向要重定向到的 URL。 必須是絕對的,如“<a href=”https://example.com/mypage/”>https://example.com/mypage/</a>”。 默認是重定向回請求 URI。
form_id 表單的 ID 屬性值。 默認“登錄”。
label_username 用戶名或電子郵件地址字段的標籤。 默認“用戶名或電子郵件地址”。
標籤密碼密碼字段的標籤。 默認“密碼”。
label_remember 記住字段的標籤。 默認“記住我”。
label_login 提交按鈕的標籤。 默認“登錄”。
id_username 用戶名字段的 ID 屬性值。 默認“用戶登錄”。
id_password 密碼字段的 ID 屬性值。 默認“用戶密碼”。
id_remember 記住字段的 ID 屬性值。 默認“記住我”。
id_submit 提交按鈕的 ID 屬性值。 默認“wp-提交”。
記住檢查是否在表單中顯示“rememberme”複選框
value_username 用戶名字段的默認值。
value_remember 檢查是否應默認選中“記住我”複選框。 默認 false(未選中)

例如,您可以設置參數數組並將其傳遞給此函數,如下所示:

 <?php 

wp_login_form( 

	 大批(
			'迴聲' => 真的,
			// 默認“重定向”值將用戶帶回請求 URI。
			'重定向' => ( is_ssl() ? 'https://' : 'http://' ) 。 $_SERVER['HTTP_HOST'] 。 $_SERVER['REQUEST_URI'],
			'form_id' => 'loginform',
			'label_username' => __('你的用戶名'),
			'label_password' => __( '你的密碼' ),
			'label_remember' => __('記住我'),
			'label_log_in' => __( '登錄' ),
			'id_username' => 'user_login',
			'id_password' => 'user_pass',
			'id_remember' => 'rememberme',
			'id_submit' => 'wp-submit',
			'記住' => 真的,
			'value_username' => '',
			// 將 'value_remember' 設置為 true 以默認選中“記住我”複選框。
			'value_remember' => 假,
		);
		
); ?>

表單將顯示您添加到數組中的新標籤,而不是默認的 WordPress 登錄表單標籤。 在上面的代碼中,我將用戶名更改為您的用戶名,將密碼更改為您的密碼。

在沒有插件登錄頁面模板的WordPress中創建登錄頁面

創建短代碼和回調函數後,我們需要對其進行初始化,以便我們現在可以在 WordPress 帖子或頁面的任何位置使用短代碼來添加自定義登錄表單。

以下是將初始化登錄表單短代碼的代碼:

 // 第三步:初始化簡碼函數

add_action('init', 'njengah_add_login_shortcode');

在 WordPress 中創建登錄表單簡碼的完整代碼片段

現在我們可以將所有這些代碼片段放在一個代碼片段中,並將代碼添加到活動 WordPress 主題的 functions.php 中,然後使用簡碼 - [njengah-login-form] 顯示 WordPress 登錄表單。

以下是您應該添加到 functions.php 文件以添加 WordPress 登錄表單短代碼的完整代碼片段:

 /**
 * 創建沒有插件的自定義 WordPress 登錄表單 [WordPress 登錄表單簡碼] 
 * @作者喬恩傑加 
 * @ gist - https://gist.github.com/Njengah/fa96025717308df1b979e77e5da3eef2
 */ 


// 第 1 步:創建簡碼
功能 njengah_add_login_shortcode() {
	add_shortcode('jay-login-form', 'njengah_login_form_shortcode');
}

//第二步:短代碼回調
功能 njengah_login_form_shortcode() {
	
	if (is_user_logged_in())
		
		返回'<p>歡迎。 您已登錄!</p>'; ?> 
		
		<div class ="njengah-login-tutorial" >  
		
			<?php 返回 wp_login_form( 
							大批( 
								'迴聲' => 假,
								'label_username' => __('你的用戶名'),
								'label_password' => __( '你的密碼' ),
								'label_remember' => __('記住我')
			              )
			); ?> 
		
		</div>
  <?php 
   }

// 第三步:初始化簡碼函數
add_action('init', 'njengah_add_login_shortcode');

//第 4 步:使用簡碼 [njengah-login-form] 將登錄表單嵌入頁面或帖子 

當您將此代碼​​添加到 functions.php 時,您應該創建一個登錄頁面並添加短代碼 [njengah-login-form] 以發布登錄表單。 登錄表單應如下圖所示:

在沒有插件登錄頁面模板的WordPress中創建登錄頁面

WordPress登錄表單樣式

我添加了以下樣式以使登錄表單具有吸引力並採用我正在使用的主題的設計:

 .njengah-登錄教程 {
    背景:#6379a4;
    填充:20px;
    最大寬度:70%;
    邊距:0 自動;
    顏色:#fff;
}

.登錄密碼標籤{
    右邊距:120px;
}

.登錄用戶名 {
    填充頂部:30px;
}

創建登錄表單自定義頁面模板

在沒有插件的情況下在 WordPress 中創建登錄頁面的另一種方法是創建自定義頁面模板並使用 wp_login_form() 函數在該頁面上發布登錄表單。

以下是用於創建位於自定義頁面模板中的自定義登錄頁面的代碼:

 <?php
/**
 * 模板名稱:登錄頁面 
 */
 
 get_header(); 
 
 
 if (is_user_logged_in()){
	 
	     迴聲'<p>歡迎。 您已登錄!</p>'; 
		 
 }別的{ 
	 
	 wp_login_form( 

		 大批(
				'迴聲' => 真的,
				// 默認“重定向”值將用戶帶回請求 URI。
				'重定向' => ( is_ssl() ? 'https://' : 'http://' ) 。 $_SERVER['HTTP_HOST'] 。 $_SERVER['REQUEST_URI'],
				'form_id' => 'loginform',
				'label_username' => __('你的用戶名'),
				'label_password' => __( '你的密碼' ),
				'label_remember' => __('記住我'),
				'label_log_in' => __( '登錄' ),
				'id_username' => 'user_login',
				'id_password' => 'user_pass',
				'id_remember' => 'rememberme',
				'id_submit' => 'wp-submit',
				'記住' => 真的,
				'value_username' => '',
				// 將 'value_remember' 設置為 true 以默認選中“記住我”複選框。
				'value_remember' => 假,
			)
						
		);
    }			
	
get_footer();		
				

將此代碼保存在一個文件中並將其命名為 login-page.php 並確保它保存在 WordPress 主題的根文件夾中。

創建一個新頁面,您將看到登錄模板現在在頁面屬性模板選項上可用,如下所示:

在沒有插件登錄頁面模板的WordPress中創建登錄頁面

選擇模板並發布頁面。 當您檢查前端時,您應該看到為未登錄的用戶顯示登錄表單,並為已登錄的用戶顯示歡迎消息。

如何創建登錄頁面模板wordpress

結論

在這篇文章中,我概述了在 WordPress 頁面中添加登錄表單的兩種方法。 您可以使用簡碼功能創建 WordPress 登錄表單簡碼,也可以使用自定義頁面模板在 WordPress 中創建登錄頁面,無需插件。 我希望您現在可以實施其中一種方法來在您的 WordPress 網站上創建自定義前端登錄表單。

類似文章

  1. 如何從 Shopify 遷移到 WooCommerce