如何以編程方式創建 WordPress 自定義字段

已發表: 2022-01-20

您想以編程方式創建 WordPress 自定義字段嗎? 如果是,我們為您提供了完美的指南,並提供了更多其他選項。

WordPress 成為全球最受歡迎的 CMS 的原因有很多。 但最相關的一項是高度可定制的。 您可以自定義 WordPress 網站的許多元素,其中自定義字段也是其中之一。 WordPress 為它們提供了許多可自定義的功能,您甚至可以在您的網站上以編程方式添加自定義字段。

什麼是自定義字段?

自定義字段附加到帖子或頁面,它存儲要用於網站的附加信息。 它也可以與任何類型的帖子相關。 因此,它也可以收集與產品、評論甚至自定義帖子類型相關的信息。

它們存儲在wp_postmeta表下的 WordPress 網站數據庫中。 它包含參數 meta_id、post_id、meta_key 和 meta_value。

數據庫 wordpress 以編程方式創建自定義字段

此外,您還可以在自定義字段中存儲任何類型的數據。 它們甚至可以被前端和後端用戶使用,或者也可以被其他一些 PHP 腳本使用。

為什麼要在 WordPress 中創建自定義字段?

自定義字段可用於實現廣泛的要求。 每當您需要添加一些與帖子相關的附加信息時,自定義字段可能非常有用。

但是,開發人員主要使用自定義字段向他們的網站添加新功能。 它最有用的應用程序之一是在前端使用它們,以便用戶可以填寫表格

但這裡還有一些可以使用自定義字段的示例:

  • 將“心情”附加到帖子中,您想在其中透露您在寫作時的感受。
  • 讓用戶知道是否針對某些特定年齡範圍建議了帖子。
  • 存儲閱讀帖子所需的時間。
  • 給產品或帖子打分。
  • 存在時將觸發某些腳本的參考數據。

除此之外,主題和插件通常使用自定義字段來為特定帖子或頁面分配特殊功能。 同樣,在前端和後端的用戶界面上使用自定義字段也是一種常見做法。

現在您已經熟悉了 WordPress 中自定義字段的重要性,讓我們看看如何添加它們。

如何在 WordPress 中添加自定義字段?

默認情況下,您可以在編輯器中編輯時將自定義字段添加到任何帖子。 您需要做的就是在“頁面選項”選項卡上啟用它,然後向下滾動以找到自定義字段元框。

只需單擊“添加自定義字段”並插入名稱和值,即可手動創建自定義字段。

但是,如果您在這裡,您肯定正在尋找一種以編程方式創建 WordPress 自定義字段的方法。 所以,讓我們繼續深入研究它。

如何以編程方式創建 WordPress 自定義字段?

如果您具有編程方面的基本技術知識,則可以通過編程方式輕鬆地在 WordPress 中創建自定義字段。

但在我們開始之前,請確保您備份您的網站並以編程方式創建子主題或使用其中一個子主題插件。 我們將修改您網站的精細文件,當您更新 WordPress 主題時,這些更改也可能會被刪除。 但是,如果您使用子主題,即使您更新了 WordPress 主題,這些文件中的自定義設置也不會受到影響。

如果您不習慣自己直接更改主題文件,也可以使用 Code Snippets 之類的插件。 儘管如此,我們將在本教程中使用子主題,因為它對我們來說更容易。

1.訪問functions.php主題文件

創建子主題後,您可以開始在 function.php 主題文件中添加代碼片段以創建自定義字段。 只需轉到外觀 > 主題編輯器並從 WordPress 儀表板打開functions.php文件。 然後,在此編輯器底部添加代碼片段並更新文件

主題編輯器 wordpress 以編程方式創建自定義字段

我們在本教程中使用了 Divi 主題。 但是根據您使用的主題,主題編輯器在您的網站上的顯示可能會有所不同。

2. 將代碼片段添加到主題編輯器

add_post_meta()函數是我們將使用的函數。 它需要三個參數:帖子或頁面的 id、自定義字段的名稱及其值。 第四個可選參數可用於檢查自定義字段是否已存在。

因此,添加自定義字段就像在子主題的function.php文件中添加以下行一樣簡單。

 add_post_meta(460, "custom_field_name", "value",true);

這將為 id 為 460 的帖子添加一個自定義字段。

對於此演示,我們將自定義字段命名為“custom_field_name”。 但是,您也可以分配一個字符串作為值(值)並將可選參數設置為 true,以便僅在它不存在時創建它。

當然,這是將自定義字段添加到特定帖子的腳本最簡單的狀態。 它根本沒有效率,因為它會在每個頁面加載時同時檢查自定義字段是否存在無用。

值得慶幸的是,我們可以對其進行更多改進,以實現可接受的解決方案。 在這種情況下, publish_post()鉤子將非常有用,因為它僅在發布帖子時觸發

 add_action('publish_post', 'add_custom_field_automatically');

功能 add_custom_field_automatically($post_ID) {

如果(!wp_is_post_revision($post_ID)){

add_post_meta($post_ID, 'meta_field', '55',true);
}
}

因為我們使用的是$post_ID全局變量,所以這將適用於所有新發布的帖子

更新 WordPress 中的自定義字段

當您以編程方式在 WordPress 中創建自定義字段時,您還可以根據需要使用類似的代碼片段來更新它們。

為了更新自定義字段,可以使用update_post_meta()函數。 我們還將使用與前一個腳本相同的鉤子,因為它在您更新帖子時也可以工作。 只需將以下代碼片段添加到您網站的 functions.php 文件中即可。

 add_action('publish_post', 'update_custom_field_automatically');

功能 update_custom_field_automatically($post_ID) {

如果(!wp_is_post_revision($post_ID)){

update_post_meta($post_ID, 'meta_field', 20);

}

}

這會將先前創建的自定義字段的值從 55 更改為 20。

update_post_meta()也可用作add_post_meta()函數。 如果它也不存在,它可以創建一個新的自定義字段。

刪除 WordPress 中的自定義字段

代碼片段的使用不僅限於在 WordPress 中創建和更新自定義字段。 在以編程方式創建 WordPress 自定義字段後,在某些情況下您可能還想刪除它們。

允許我們刪除具有給定名稱(鍵)的所有自定義字段的函數是delete_post_meta_by_key(”meta_field”); 它僅將自定義字段名稱作為其唯一參數。

正如我們已經討論過的,正確的方法是使用鉤子。 這一次,我們將使用init()鉤子,它主要用於初始化插件和主題。 同樣,將以下代碼段添加到 functions.php 文件中。

 add_action('init', 'remove_custom_field_automatically');

功能 remove_custom_field_automatically() {

delete_post_meta_by_key('meta_field');

}

要刪除特定帖子上的自定義字段,您可以使用delete_post_meta()函數。 如果將特定值分配給自定義字段,也可以使用它。

與前一個片段相比,這個工作方式類似。 但它提供了更大的靈活性來針對特定自定義字段的移除

 add_action('publish_post', 'delete_custom_field_automatically');

功能 delete_custom_field_automatically($post_ID) {

如果(!wp_is_post_revision($post_ID)){

delete_post_meta($post_ID, 'meta_field');

}

}

此腳本將刪除當前帖子的名為“custom_field”的自定義字段,該字段由$post_ID變量給出。

僅當附加了特定值時,您也可以刪除自定義字段。 只需將其添加為第三個參數。

delete_post_meta($post_ID, 'meta_field','20');

而已! 您現在可以通過編程方式在 WordPress 中創建、更新或刪除自定義字段。 只需根據您的網站修改這些片段,您就可以對它們進行更多修改。

結論

這是我們以編程方式在 WordPress 中創建自定義字段的教程。 如果您想在您的網站上為用戶提供其他信息,它們會非常有用。

總而言之,我們向您展示了在 WordPress 中創建自定義字段的代碼片段。 同樣,我們還為您提供了更多片段來更新和刪除自定義字段。 根據您網站的需要,它們可以在某些情況下派上用場。

自定義字段是 WordPress 的最佳功能之一,並且在 WooCommerce 中也被廣泛使用。 我們甚至有在 WooCommerce 結帳中添加自定義字段和重新排序 WooCommerce 結帳字段的指南。 如果您想了解有關 WordPress 和 WooCommerce 中其他自定義的更多信息,請隨時閱讀以下帖子:

  • 如何創建 WordPress 自定義帖子類型
  • 自定義 WordPress 登錄頁面
  • 如何自定義 WooCommerce 相關產品

那麼您現在可以通過編程方式在 WordPress 中創建自定義字段嗎? 你以前創建過它們嗎? 請在評論中告訴我們。