WordPress賦予用戶直接在管理界面內的帖子,頁面和自定義帖子類型創建自定義元框。 WordPress API還為默認的元框提供了廣泛的自定義選項。該教程指導您通過創建,保存,驗證和檢索自定義元數據,並刪除默認的元框。
>密鑰概念:
了解自定義元框:>
自定義元框提供了一種添加WordPress默認選項以外的字段的方法。插件和主題利用它們收集結構化的用戶輸入。 它們也可以添加到儀表板中,以反映WordPress儀表板小部件的功能(本質上是元框本身)。 標準的元框包括編輯器,自定義字段,特色圖像,類別和標籤部分。
>自定義元框與自定義字段:
自定義字段存儲鍵值數據對。 Meta框提供更多的通用輸入類型,包括顏色拾取器,文件上傳和下拉列表。
元數據解釋了:
>元數據表示輸入的值中的值。 WordPress將此數據存儲為鍵值對(元密鑰和元值),其中元密鑰是字段名稱,元值是輸入的數據。
創建一個元框:>
函數寄存器並顯示自定義元框。 以下代碼將自定義的元框添加到WordPress帖子:add_meta_box
>
<code class="language-php">function custom_meta_box_markup() { // Content will be added here later } function add_custom_meta_box() { add_meta_box("demo-meta-box", "Custom Meta Box", "custom_meta_box_markup", "post", "side", "high", null); } add_action("add_meta_boxes", "add_custom_meta_box");</code>>
使用七個參數:id(唯一標識符),標題(顯示標題),回調(函數顯示內容),屏幕(帖子類型),context(position),優先級(上下文中的順序)和回調參數。 add_meta_box
>將字段添加到自定義元框:
此代碼包括對安全性的NONCE驗證,並使用
來檢索現有數據。<code class="language-php">function custom_meta_box_markup($object) { wp_nonce_field(basename(__FILE__), "meta-box-nonce"); ?> <div> <label for="meta-box-text">Text:</label> <input name="meta-box-text" type="text" value="<?php echo esc_attr(get_post_meta($object->ID, " meta-box-text true>"> <br><br> <label for="meta-box-dropdown">Dropdown:</label> <select name="meta-box-dropdown"> <?php $option_values = array(1, 2, 3); foreach ($option_values as $value) { $selected = ($value == get_post_meta($object->ID, "meta-box-dropdown", true)) ? 'selected' : ''; echo "<option value='\"{$value}\"'>{$value}</option>"; } ?> </select> <br><br> <label for="meta-box-checkbox">Check Box:</label> <?php $checkbox_value = get_post_meta($object->ID, "meta-box-checkbox", true); $checked = ($checkbox_value == "true") ? 'checked' : ''; ?> <input name="meta-box-checkbox" type="checkbox" value="true" echo>> </div> <?php }</code>
get_post_meta
>保存元數據:
掛鉤保存數據:save_post
<code class="language-php">function custom_meta_box_markup() { // Content will be added here later } function add_custom_meta_box() { add_meta_box("demo-meta-box", "Custom Meta Box", "custom_meta_box_markup", "post", "side", "high", null); } add_action("add_meta_boxes", "add_custom_meta_box");</code>此代碼可驗證NONCE,用戶權限和自動信號。 至關重要的是,它使用
來防止安全漏洞。 sanitize_text_field
>
>刪除元盒:
函數刪除了元框。 例如,要刪除自定義字段元框:remove_meta_box
<code class="language-php">function custom_meta_box_markup($object) { wp_nonce_field(basename(__FILE__), "meta-box-nonce"); ?> <div> <label for="meta-box-text">Text:</label> <input name="meta-box-text" type="text" value="<?php echo esc_attr(get_post_meta($object->ID, " meta-box-text true>"> <br><br> <label for="meta-box-dropdown">Dropdown:</label> <select name="meta-box-dropdown"> <?php $option_values = array(1, 2, 3); foreach ($option_values as $value) { $selected = ($value == get_post_meta($object->ID, "meta-box-dropdown", true)) ? 'selected' : ''; echo "<option value='\"{$value}\"'>{$value}</option>"; } ?> </select> <br><br> <label for="meta-box-checkbox">Check Box:</label> <?php $checkbox_value = get_post_meta($object->ID, "meta-box-checkbox", true); $checked = ($checkbox_value == "true") ? 'checked' : ''; ?> <input name="meta-box-checkbox" type="checkbox" value="true" echo>> </div> <?php }</code>請記住,使用的鉤子(例如,
或do_meta_boxes
)取決於上下文。
wp_dashboard_setup
WordPress的Meta Box API是擴展功能的強大工具。 了解其細微差別並確定安全性最佳實踐是有效實施的關鍵。 提供的代碼示例說明了核心過程,但請記住將它們適應您的特定需求並始終對用戶輸入進行消毒。
以上是將自定義的元框添加到WordPress Admin界面的詳細內容。更多資訊請關注PHP中文網其他相關文章!