首頁  >  文章  >  CMS教程  >  透過重力形式增強形式彈性

透過重力形式增強形式彈性

王林
王林原創
2023-09-01 15:53:08453瀏覽

Gravity Forms 是 Rocketgenius 的一款產品,是 WordPress 的綜合表單解決方案。任何開發人員都會告訴您,建立表單有時會非常耗時,尤其是當它需要做的不僅僅是處理訊息時。

如果您需要一個表單來根據特定條件將使用者註冊到您的網站,該怎麼辦?或者,如果您需要一個允許使用者從前端角度將內容發佈到您的網站的表單,該怎麼辦? Gravity Forms 可以做到所有這些,而它無法做到的開箱即用的功能,您可以利用其內建的鉤子和過濾器自行構建。

在我討論 Gravity Forms 如何擴展您的 WordPress 安裝之前,請務必注意 Gravity Forms 是高級外掛程式。要獲得本文中討論的一些好東西,您至少需要一個重力形式的商業許可證,但是我強烈推薦開發人員許可證,因為它可以為您帶來最大的收益。現在我們已經解決了這個問題,讓我們來看看 Gravity Forms 擴充 WordPress 網站的幾種方法。


擴展用戶註冊表

可以透過向 functions.php 檔案添加程式碼來為註冊表單添加額外的字段,但您可以透過讓 Gravity Forms 完成繁重的工作來避免在後台花費太多時間。使用 Gravity Forms 建立使用者和指派使用者角色非常簡單,您只需建立一個表單,將您的欄位與 WordPress 預設欄位相匹配,然後選擇提交時要指派的使用者角色。您也可以對同一個表單進行多個「註冊」。

重力形式如何擴展使用者註冊過程的一個例子是條件註冊。例如,如果您的會員網站僅允許電子郵件地址為「@xyz.com」和「@abc.com」的用戶進行註冊,則您可以新增僅建立用戶並將其指派給基於角色的註冊來源。判斷他們是否符合該標準,同時不允許其他人註冊。

這種條件邏輯遠遠超出了使用者註冊的範圍,您可以在任何類型的表單中建立條件欄位。例如,如果您想根據使用者的年齡組向使用者顯示其他字段,您可以根據使用者的回應選擇顯示(或選擇隱藏)其他字段來自訂字段。

透過重力形式增強形式彈性


#使用重力形式進行前端內容提交

如果您希望為用戶提供更強大的前端,重力表單可以是一個很好的解決方案,它允許用戶直接向貼文提交內容。您所需要做的就是建立一個使用內建貼文欄位功能的表單。這些貼文欄位會對應到預設貼文標題、正文內容、摘錄、特徵圖像、類別和標籤。 Gravity Forms 也會將表單資料對應到自訂欄位。要將您的內容對應到自訂欄位:

透過重力形式增強形式彈性

#沒有看到下拉清單中列出的自訂欄位?返回您的貼文並建立包含自訂欄位中的內容的「草稿」並儲存。然後返回您的重力表並再次檢查。

當 Gravity Forms 與外掛程式 Gravity Forms 自訂貼文類型結合使用時,該組合透過允許將表單資料對應到自訂貼文類型(因此成為該外掛程式的名稱)來提供更多功能。如果您擔心安裝太多外掛程式 - 並且只需要對自訂分類法的支援 - 您始終可以透過 functions.php 檔案掛鉤到 Gravity Forms 來手動新增支援。


談到鉤子和過濾器

重力形式附帶大量文件。如果你能夢想,你就可能實現它。您可以利用多種掛鉤和過濾器,最好的部分是您可以將它們指派給單獨的表單。假設您希望允許用戶向您的網站提交帖子,但您希望控制其標題長度,您可以建立自訂驗證邏輯來限制輸入的長度。請參閱範例。

add_filter( 'gform_validation_7', 'title_size' );
function title_size( $validation_result ) {
	$form = $validation_result["form"];

	// assuming we don't want input_3 to be longer than 75 characters.
	if ( strlen( $_POST['input_3'] ) > 75 ) {

		// set the form validation to false
		$validation_result["is_valid"] = false;

		// find field with ID we're looking for and marking it as failed validation
		foreach ( $form["fields"] as &$field ) {

			// replace 3 with the field id number you're validating
			if ( $field["id"] == "3" ) {
				$field["failed_validation"] = true;
				$field["validation_message"] = "Title is too long.";
				break;
			}
		}

	}

	// change object back to the result
	$validation_result["form"] = $form;
	return $validation_result;
}
?>

程式碼的第一部分使用篩選器進行重力形式驗證,並建立一個測試相關欄位長度的函數。請注意此片段中的數字 7 和 3。 7表示表單ID,3表示正在測試的實際輸入ID。

重力形式文件包括可用鉤子和過濾器的列表,以及每個鉤子和過濾器的詳細範例 - 有時您甚至可以看到何時/為何需要它們。


結論

如果您正在尋找一種開箱即用的表單解決方案,其功能不僅僅是發送電子郵件,那麼重力表單是一個不錯的選擇 - 並且可以節省時間。可能性是無限的。對於那些因購買價格而對使用重力形式爭論或持觀望態度的人來說,它可能看起來很高,但使用重力形式所節省的好處和開發時間是值得的。

#

以上是透過重力形式增強形式彈性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn