wordpress知识库
网站首页 > 知识库 > wordpress知识 >

WordPress如何添加Meta Box

2012/09/25

在WordPress中要添加自定义的Meta Box(元框),您可以按照以下步骤进行操作:首先,打开您主题的functions.php文件。这个文件通常用来添加自定义功能。在文件的末尾,您可以添加以下代码。

function custom_meta_box() {
    add_meta_box('custom-meta-box', '自定义元框', 'render_custom_meta_box', 'post', 'normal', 'high');
}
add_action('add_meta_boxes', 'custom_meta_box');

function render_custom_meta_box($post) {
    // 在该函数中自定义元框的内容和字段
}

以上代码使用add_meta_boxes动作来添加一个新的Meta Box。custom-meta-box是这个Meta Box的标识符,您可以根据需要进行更改。自定义元框是该Meta Box在后台编辑页面上显示的标题。render_custom_meta_box是一个渲染函数,用于定义和输出Meta Box的内容和字段。

接下来,在render_custom_meta_box函数中添加以下代码来定义和输出您希望显示在Meta Box中的字段。

function render_custom_meta_box($post) {
  // 获取已保存的meta值(如果有)
  $value = get_post_meta($post->ID, 'custom_meta', true);

  // 输出表单字段
  echo '<label for="custom-meta">自定义字段:</label>';
  echo '<input type="text" id="custom-meta" name="custom_meta" value="' . esc_attr($value) . '" />';
}

以上代码创建了一个文本输入字段,并使用get_post_meta函数获取已保存的meta值。将字段的值赋给$value变量,并在<input>标签中显示出来。

最后,添加以下代码来保存Meta Box字段的值。

function save_custom_meta($post_id) {
  if (isset($_POST['custom_meta'])) {
    $value = sanitize_text_field($_POST['custom_meta']);
    update_post_meta($post_id, 'custom_meta', $value);
  }
}
add_action('save_post', 'save_custom_meta');

以上代码使用update_post_meta函数将Meta Box字段的值保存到custom_meta的meta键中。使用save_post动作将save_custom_meta函数与保存文章的事件绑定起来。

添加完以上更改后,刷新编辑文章的页面,您将看到自定义的Meta Box出现在文章编辑页面上。您可以根据需要进行修改和扩展,定义其他类型的字段,如复选框、下拉选择框等。