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中文网其他相关文章!