wordpress add_meta_box
时间 : 2024-01-09 06:19:02 声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

最佳答案

在WordPress中,我们可以使用add_meta_box()函数来添加一个自定义的元框(meta box)到文章编辑页面。元框可以用来展示和编辑与文章相关的自定义元数据。

以下是如何使用add_meta_box()函数添加元框的示例代码:

```php

// 添加元框

function custom_meta_box() {

add_meta_box(

'custom_metabox', // 元框的ID(唯一标识)

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

'render_custom_metabox', // 渲染元框的回调函数

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

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

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

);

}

add_action( 'add_meta_boxes', 'custom_meta_box' );

// 渲染元框

function render_custom_metabox( $post ) {

// 获取已保存的值

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

// 渲染元框内容

?>

<label for="custom_value">自定义字段:</label>

<input type="text" name="custom_value" id="custom_value" value="<?php echo esc_attr( $custom_value ); ?>" size="25" />

<?php

}

// 保存元框值

function save_custom_metabox( $post_id ) {

// 检查是否保存了自定义字段值

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

// 清理并保存自定义字段值

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

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

}

}

add_action( 'save_post', 'save_custom_metabox' );

请将上述代码复制并粘贴到 `functions.php` 文件中,然后保存文件。在你的文章编辑页面中,你应该会看到一个名为“自定义元框”的元框。你可以在该元框中输入自定义字段的值,并将其保存到数据库中。在你的主题文件中,你可以使用get_post_meta()函数来获取已保存的值并进行进一步的处理。

希望对你有帮助!

其他答案

在WordPress中,add_meta_box()函数是用来在文章编辑页面添加自定义元框的。元框可以用来添加额外的信息和字段,如自定义字段、元数据等。

以下是add_meta_box()函数的基本语法:

```php

add_meta_box( string $id, string $title, callable $callback, string|array|WP_Screen $screen = null, string $context = 'advanced', string $priority = 'default', array $callback_args = null )

参数说明:

- $id(必填):元框的ID,这必须是一个唯一的标识符。

- $title(必填):元框的标题。

- $callback(必填):用于渲染元框内容的回调函数。

- $screen(可选):指定应在哪个页面上显示元框,可以是特定的文章类型或自定义页面。

- $context(可选):指定元框在编辑页面的位置,可选值有'normal'(默认)、'advanced'和'side'。

- $priority(可选):指定元框在其上下文中的优先级,可选值有'default'(默认)、'high'和'low'。

- $callback_args(可选):传递给回调函数的其他参数。

下面是一个示例,演示如何在文章编辑页面的侧边栏添加一个自定义元框:

```php

function custom_meta_box_callback( $post ) {

// 在这里添加元框的内容

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

echo '<input type="text" id="custom_field" name="custom_field" value="' . esc_attr( get_post_meta( $post->ID, 'custom_field', true ) ) . '" />';

}

function add_custom_meta_box() {

add_meta_box( 'custom_meta_box', '自定义元框', 'custom_meta_box_callback', 'post', 'side', 'default' );

}

add_action( 'add_meta_boxes', 'add_custom_meta_box' );

在上面的示例中,我们首先定义了一个回调函数custom_meta_box_callback(),用于渲染元框的内容。然后,我们使用add_meta_box()函数将该元框添加到了文章编辑页面的侧边栏。我们指定了元框的ID为'custom_meta_box',标题为'自定义元框',在文章类型为'post'的编辑页面上显示,并将其位置设置为侧边栏。

在custom_meta_box_callback()函数中,我们添加了一个文本输入框,用于输入自定义字段的值。我们通过get_post_meta()函数获取已保存的字段值,并使用esc_attr()函数进行HTML实体编码,以防止XSS攻击。

最后,我们使用add_action()函数将add_custom_meta_box()函数挂钩到'add_meta_boxes'动作上,以确保在加载编辑页面时添加元框。

在您的自定义元框中,您可以根据您的需要添加更多的表单字段和逻辑。此外,您还可以使用update_post_meta()函数将表单字段的值保存为文章的元数据。