要獲得所有工作,您需要將任期元數據作為每個數據的WP_OPTIONS表中的字段保存為字段,這意味著您可能有數百個,如果不是數千個額外的條目,則術語或僅幾個定制分類法。
但是,由於WordPress 4.4及以後,術語現在為對象,與帖子,頁面和自定義內容類型相同。此更改使添加,刪除和更新您的元數據變得更加容易。>
帶有術語meta的背景故事
自從WordPress 2.8返回以來,社區一直在推動一種簡單的方法來控制術語元數據。這是一個緩慢的過程,但最終從頭開始重新設計了術語以使用班級結構。這加上WordPress 4.4的一些不同的更改意味著分類法(例如“標籤”,“類別”或“自定義”)中的術語現在可以輕鬆地分配給他們。在WordPress 4.4之前,沒有明確的方法可以輕鬆地為術語項目保存元數據,這是對構造方式的術語的固有限制。如果您要擴展分類法或條款,則必須將數據直接保存為使用Update_option的站點選項。 這不是理想的(因為它使選項表雜亂無章)。
>//saving new fields for category function save_extra_taxonomy_fields($term_id){ $term = get_term($term_id); $term_slug = $term->slug; //collect category image id from posted values $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; //update value and save it as an option update_option('category_image_id_' . $term_slug, $term_category_image_id); } add_action('create_category','save_extra_taxonomy_fields');
添加,更新和刪除術語元
添加術語元
讀取術語meta
function add_featured_to_categories(){ //get all terms from the category taxonomy $taxonomy_name = 'category'; $term_args = array( 'orderby' => 'name', 'hide_empty' => false, 'fields' => 'ids' ); $terms = get_terms($taxonomy_name, $term_args); if($terms){ $term_key = 'term_size'; $term_value = 'empty'; $term_unique = true; //go through all terms and set the new term meta foreach($terms as $term_id){ $term = get_term($term_id, $taxonomy_name); $term_count = $term->count; //determine new meta value if($term_count > 10){ $term_value = 'big'; }else if($term_count >= 5 && $term_count < 10){ $term_value = 'medium'; }else if($term_count >= 1 && $term_count < 5){ $term_value = 'small'; } //save meta value add_term_meta($term_id, $term_key, $term_value, $term_unique); } } } add_action('init', 'add_featured_to_categories');
>獲取元數據的術語ID
$鍵(可選) - 您要返回的單個指定密鑰。如果未指定,則將返回所有元數據。現在,在我們的類別中,或其他兒童主題模板文件,我們可以修改顯示我們的術語數據的功能。
在我的情況下,我正在使用二十四個問題進行編輯類別。
//given a term, collect its saved image to be displayed function display_term_meta_image($term_id, $term_taxonomy){ //get supplied term $term = get_term($term_id, $term_taxonomy); if($term){ $term_image_id = get_term_meta($term_id, 'term_image_id', true); if($term_image_id){ //get the medium image size for display $term_image = wp_get_attachment_image_src($term_image_id, 'medium', false); echo '<img . $term_image[0] . '" title="' . $term->name . ' image"/>'; } } }
>
>我們可以刪除術語元數據,與帖子相同。當我們使用delete_term_meta函數時,如果需要,我們需要提供兩個強制性參數。
此功能將通過並刪除我們在$ wasse_term_keys變量中未指定的任何其他元數據,從而減少了數據庫中浪費的空間(對於我們有數十個元數據條目時,我們不再需要)。 > 與WordPress 4.3及以上的
//saving new fields for category function save_extra_taxonomy_fields($term_id){ $term = get_term($term_id); $term_slug = $term->slug; //collect category image id from posted values $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; //update value and save it as an option update_option('category_image_id_' . $term_slug, $term_category_image_id); } add_action('create_category','save_extra_taxonomy_fields');
>您真的很想向前推進這些新的元功能,但想掩蓋自己的舊版本,則可以創建一些有條件的功能以確保一切都可以。
>如果我們沒有支持,我們會抓住術語對象本身(通過術語ID中的術語),然後我們提取$ TERM_TAXONOMY數據並使用它來構建我們的最終鍵值。由於我們將保存到選項表中,我們需要確保密鑰是唯一的,因此我們通過將分類法名稱,術語ID和術語鍵添加到一個變量中來做到這一點。 我們必須確保密鑰的長度不超過64個字符,並將其修剪成。完成所有這些操作後,我們可以調用我們的add_option函數以節省我們的價值。
function add_featured_to_categories(){ //get all terms from the category taxonomy $taxonomy_name = 'category'; $term_args = array( 'orderby' => 'name', 'hide_empty' => false, 'fields' => 'ids' ); $terms = get_terms($taxonomy_name, $term_args); if($terms){ $term_key = 'term_size'; $term_value = 'empty'; $term_unique = true; //go through all terms and set the new term meta foreach($terms as $term_id){ $term = get_term($term_id, $taxonomy_name); $term_count = $term->count; //determine new meta value if($term_count > 10){ $term_value = 'big'; }else if($term_count >= 5 && $term_count < 10){ $term_value = 'medium'; }else if($term_count >= 1 && $term_count < 5){ $term_value = 'small'; } //save meta value add_term_meta($term_id, $term_key, $term_value, $term_unique); } } } add_action('init', 'add_featured_to_categories');
將其全部包裝
使用這些新的元功能應使您更輕鬆地擴展您的術語以提供獨特的功能。例如,您可能需要在術語的頂部添加橫幅圖像或提供元數據,以便您可以有條件地以不同的方式顯示您的條款(例如,根據顯示的術語加載新的模板文件)。
>具有新術語元函數的靈活性和易度性,您可以立即開始在新項目中實現此功能!>
WordPress項META是一項功能,它允許您將自定義元數據存儲在WordPress站點中。該元數據可以是其他任何要與該術語相關聯的信息,也可以是任何其他描述,圖像,顏色或任何其他信息。這是一個功能強大的工具,可以增強網站的功能和用戶體驗。
在WordPress中添加術語META,您可以使用add_term_meta( ) 功能。此功能採用三個必需的參數:術語ID,元密鑰(元字段的名稱)和元值。可選地,您還可以指定元密鑰是否應該是唯一的。
>>您可以使用get_term_meta()function在WordPress中檢索術語元數據。此功能需要您要檢索的元字段的術語ID和鍵。它返回指定術語的元字段的值。
是的,您可以使用update_term_meta()function在WordPress中更新術語Meta。此功能需要術語ID,元密鑰和新的元值。如果該術語不存在元密鑰,則將添加。
>> WordPress中的術語元素可用於多種目的,例如將其他信息添加到類別或標籤中,為術語創建自定義字段,增強搜索功能等等。我可以使用WordPress中的自定義分類法的術語元素嗎?術語元函數可與任何分類法(包括自定義的分類法)一起使用。
>
以上是WordPress術語元和WP_TERM簡介的詳細內容。更多資訊請關注PHP中文網其他相關文章!