wordpress addmetabox
时间 : 2023-12-25 21:13:02 声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

最佳答案

在WordPress中,可以通过添加元框(Meta Box)来向文章、页面或自定义帖类型添加额外的内容和功能。元框可以允许用户输入和保存自定义字段、选项和元数据。

为了在WordPress中添加元框,可以按照以下步骤进行操作:

1. 创建一个函数,用于添加自定义元框。可在主题的functions.php文件中添加以下代码:

```php

function 添加自定义元框() {

add_meta_box(

'custom_meta_box', // 元框的唯一标识符

'自定义元框', // 元框的标题

'显示自定义元框', // 显示元框内容的回调函数

'post', // 元框所应用的文章类型

'normal', // 元框的位置(normal,side或advanced)

'high' // 元框的优先级(high,core,default或low)

);

}

add_action('add_meta_boxes', '添加自定义元框');

2. 创建回调函数来显示自定义元框的内容。可在主题的functions.php文件中添加以下代码:

```php

function 显示自定义元框($post) {

// 获取保存在元数据中的值

$custom_value = get_post_meta($post->ID, 'custom_meta_box_key', true);

// 显示输入字段

echo '<label for="custom_meta_box_field">自定义字段:</label>';

echo '<input type="text" id="custom_meta_box_field" name="custom_meta_box_name" value="' . esc_attr($custom_value) . '" />';

}

3. 创建一个函数来保存自定义元框的值。可在主题的functions.php文件中添加以下代码:

```php

function 保存自定义元框($post_id) {

// 检查非自动保存的时候是否有权限

if (!current_user_can('edit_post', $post_id)) {

return;

}

// 检查是否设置了自定义字段

if (!isset($_POST['custom_meta_box_name'])) {

return;

}

// 过滤和处理输入的值

$custom_value = sanitize_text_field($_POST['custom_meta_box_name']);

// 更新保存在元数据中的值

update_post_meta($post_id, 'custom_meta_box_key', $custom_value);

}

add_action('save_post', '保存自定义元框');

以上步骤完成后,你就成功在WordPress中添加了一个自定义元框。你可以根据需要修改元框的标识符、标题、显示内容和保存字段的键名。在文章编辑页面,你会看到添加的元框,并且可以输入和保存自定义字段的值。

请记住,为了确保功能正常,你需要在WordPress后台编辑文章时使用正确的用户权限。此外,你可以根据需求和喜好对元框的样式和功能进行自定义。

其他答案

WordPress中添加自定义metabox是一种很常见的需求,它可以让我们在文章、页面或者自定义内容类型的编辑页面中添加自定义的字段,并且保存这些字段的值。下面是一个简单的示例,展示如何在WordPress中添加metabox。

首先,在你的主题或者插件的functions.php文件中,使用以下代码添加metabox:

// 添加metabox

function my_custom_metabox() {

add_meta_box(

'my_metabox',

'自定义Metabox',

'my_metabox_callback',

'post', // 指定metabox应该显示在哪种内容类型中,这里是文章

'normal', // 指定metabox应该显示在编辑页面的哪个位置

'high' // 指定metabox的优先级

);

}

add_action('add_meta_boxes', 'my_custom_metabox');

// metabox回调函数

function my_metabox_callback($post) {

// 获取已保存的值

$value = get_post_meta($post->ID, 'my_metabox_field', true);

// 输出输入框

echo '<label for="my_metabox_field">自定义字段:</label>';

echo '<input type="text" id="my_metabox_field" name="my_metabox_field" value="' . esc_attr($value) . '" />';

}

// 保存metabox的值

function save_my_metabox($post_id) {

if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

if (isset($_POST['my_metabox_field'])) {

update_post_meta($post_id, 'my_metabox_field', sanitize_text_field($_POST['my_metabox_field']));

}

}

add_action('save_post', 'save_my_metabox');

以上代码首先使用`add_meta_box`函数来添加metabox,在回调函数`my_metabox_callback`中输出metabox的内容。然后,使用`update_post_meta`函数保存metabox的值。

在以上示例代码中,metabox添加到文章编辑页面中,并且包含一个自定义字段的输入框。这个自定义字段的值将会保存在文章的meta值中,键名为`my_metabox_field`。

你可以根据自己的需求来修改metabox的内容和保存逻辑。这只是一个简单的示例,用以帮助你开始使用metabox。

希望这个示例能对你有所帮助,如果有任何问题,请随时向我提问。