使用資料的可重複使用自訂元框盒子第四部分
在我們的自訂元框範本教學系列的第1 部分、第2 部分和第3 部分中,我們學習如何製作可重複使用的元框,該元框從易於閱讀、易於複製的陣列中取得所有欄位資訊。許多資料很容易使用,只需回顯模板中的元字段或通過函數即可,但某些字段更複雜,需要更多技巧才能正確使用。本教程將為您提供如何使用這些數據的基本概念,並可以透過無數種方式進行闡述。
取得資料
WordPress 提供了多種獲取貼文元資料的方法。
一次輸出所有資料
顯示資料最簡單的方法是使用 使用資料的可重複使用自訂元框盒子第四部分()
函數。您可以將其直接放入您的 single.php 範本中,但它不會為您提供您可能想要的結果。它是無序列表中資料的非常字面的輸出,以每個欄位的鍵為前綴,如圖所示。



取得單一欄位
取得儲存在帖子元欄位中的資料最常見的方法是使用 get_post_meta()
函數。這是一種定位特定欄位並將其儲存在稍後可以使用的變數中的簡單方法。
$custom_text = get_post_meta($post->ID, 'custom_text', true);
在單一後循環中使用此程式碼會將文字「基本文字輸入中的某些文字」放入變數$custom_text
中,然後可以回顯或過濾該變量,或者您想要對字串執行的任何操作。當您只處理幾個欄位時,這可能是正確的方法,但在我們的範例中,我們正在處理 11 個不同的欄位。使用此函數單獨呼叫它們會使您的程式碼不必要地膨脹,因為有一種方法可以立即獲取所有資料。
一次取得所有資料
當我處理這麼多欄位時,我最喜歡的方法是使用 get_post_custom()
函數。透過此函數,我們可以將所有自訂帖子元欄位儲存在一個數組中,然後使用數組鍵檢索我們想要的資料。
$post_meta_data = get_post_custom($post->ID);
會給我們一個如下所示的陣列:
Array ( [custom_text] => Array ( [0] => Some text in a basic text input ) [custom_textarea] => Array ( [0] => A paragraph or two from a textarea. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tristique quam mi. Sed eget ligula sit amet ante dapibus tristique. Mauris vel enim mauris, vitae mattis tortor. Praesent at adipiscing massa. Fusce quis eros vel sem pharetra consequat imperdiet ut est. ) [custom_checkbox] => Array ( [0] => on ) [custom_select] => Array ( [0] => one ) [custom_radio] => Array ( [0] => two ) [custom_checkbox_group] => Array ( [0] => a:2:{i:0;s:3:"one";i:1;s:5:"three";} ) [custom_post_id] => Array ( [0] => 109 ) [custom_date] => Array ( [0] => 05/25/2012 ) [custom_slider] => Array ( [0] => 15 ) [custom_image] => Array ( [0] => 413 ) [custom_repeatable] => Array ( [0] => a:3:{i:0;s:22:"text from a repeatable";i:1;s:27:"more text from a repeatable";i:2;s:33:"repeatable text fields are great!";} ) )
如您從該數組中看到的,WordPress 將每個欄位儲存為數組,因為同一欄位可能有多個值。您可能還會注意到一些欄位是序列化的。讓我們更深入地了解如何處理每個欄位的數據,並討論如何解決這個問題。
簡單的輸入欄位
文字和文字區域欄位的處理非常簡單。您可以使用以下範例之一來回應它們:
echo $post_meta_data['custom_text'][0]; echo apply_filters('the_content', $post_meta_data['custom_textarea'][0]); $custom_checkox = $post_meta_data['custom_checkbox'][0]; if ($custom_checkbox == 'on') { do_stuff(); }
第一行將簡單地按原樣輸出字串,第二行將使用 WordPress 的 the_content
過濾器將換行符號轉換為段落。您也可以對選擇、單選、日期和滑桿欄位使用這些相同的方法。
最後一行顯示如何測試複選框是否已選取。如果是,您可以執行各種功能或任意數量的事情。
序列化資料
我們的複選框組欄位和可重複欄位儲存在資料庫中序列化的陣列。在輸出這些數據之前,我們必須對其進行反序列化。
$custom_checkbox_group = unserialize($post_meta_data['custom_checkbox_group'][0]); $custom_repeatable = unserialize($post_meta_data['custom_repeatable'][0]);
unserialize()
函數是一個基本的PHP函數,它將我們的資料轉換為更容易使用的陣列。上面的程式碼會給我兩個如下所示的陣列:
Array ( [0] => one [1] => three ) Array ( [0] => text from a repeatable [1] => more text from a repeatable [2] => repeatable text fields are great! )
現在我可以循環遍歷數組,但是我想在輸出中使用它們。需要注意的是,在可重複欄位中,如果您也像自訂元框模板教學第3 部分中的範例那樣使其可排序,則數組中的鍵將自動按0、1、2、3 的順序存儲等,而不是按照它們在排序之前最初輸入的順序。
echo '<ul class="custom_repeatable">'; foreach ($custom_repeatable as $string) { echo '<li>'.$string.'</li>'; } echo '</ul>';
此範例將輸出保存在 $custom_repeatable
陣列中的每個字串的無序列表。
專業數據
對於我們的帖子列表和圖像字段,我們保存了一個 ID。在極少數情況下,您可能只想輸出 ID,但很可能您希望使用 ID 來獲取更多資訊。
$custom_post_id = $post_meta_data['custom_post_id'][0]; echo '<a href="'.get_permalink($custom_post_id).'">'.get_the_title($custom_post_id).'</a>'; $custom_image = $post_meta_data['custom_image'][0]; echo wp_get_attachment_image($custom_image, 'thumbnail');
結論
本教學展示了使用我們透過可重複使用的自訂元框儲存的資料的最基本方法。能夠保存額外的資料並在主題和外掛程式中使用它,為 WordPress 開闢了一個充滿可能性的全新世界。你會用它做什麼?
以上是使用資料的可重複使用自訂元框盒子第四部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。
