元数据 Metadata
概述
Metadata API 允许我们向 WordPress 中存储任何类型的数据。这个 API 可以让我们为文章、页面、分类目录等 WordPress 实体添加任何以 Key/Value 形式存储的元数据。
添加 Metadata
添加 Metadata 是一种为文章、页面和自定义类型添加更多信息的好方法。在 WordPress 中,元数据可以添加到多种类型的实体中。下面是一些具体的例子:
- 给文章添加元数据
// 在保存文章时,保存 metadata
function save_article_meta_data( $post_id ) {
if ( isset( $_POST['article_location'] ) ) {
update_post_meta(
$post_id,
'article_location',
sanatize_text_field( $_POST['article_location'] )
);
}
}
add_action( 'save_post_article', 'save_article_meta_data' );
// 在展示文章时,获取 metadata
$location = get_post_meta( $post->ID, 'article_location', true );
if ( $location ) {
echo '<p>文章位置:' . $location . '</p>';
}
- 给用户添加元数据
// 在用户注册时保存 metadata
function set_user_meta_data( $user_id ) {
if ( isset( $_POST['user_function'] ) ) {
update_user_meta(
$user_id,
'user_function',
sanitize_text_field( $_POST['user_function'] )
);
}
}
add_action( 'user_register', 'set_user_meta_data' );
// 在展示用户信息时获取 metadata
$user_function = get_user_meta( $user_id, 'user_function', true );
if ( $user_function ) {
echo '<p>用户职能:' . $user_function . '</p>';
}
获取 Metadata
获取 metadata 是从 WordPress 中检索信息得到的。我们可以使用许多函数来获取 metadata。下面是一些有用的函数:
// 获取某篇文章的 meta 值
$location = get_post_meta( $post->ID, 'article_location', true );
// 获取某个分类目录的 meta 值
$description = get_term_meta( $category_id, 'description', true );
// 获取某个用户的 meta 值
$user_function = get_user_meta( $user_id, 'user_function', true );
更新 Metadata
有时候,我们需要修改某些存储在 WordPress 中的 metadata 数据:
// 更新某篇文章的 meta
update_post_meta( $post->ID, 'article_location', 'New Location' );
// 更新某个分类目录的 meta
update_term_meta( $category_id, 'description', 'New Description' );
// 更新某个用户的 meta
update_user_meta( $user_id, 'user_function', 'New Function' );
删除 Metadata
与更新 metadata 类似,我们需要删除 metadata 时也可以使用一些 API 中提供的函数:
// 删除某篇文章的 meta
delete_post_meta( $post->ID, 'article_location' );
// 删除某个分类目录的 meta
delete_term_meta( $category_id, 'description' );
// 删除某个用户的 meta
delete_user_meta( $user_id, 'user_function' );
这就是如何使用 WordPress Metadata API。这个 API 允许开发者在 WordPress 中存储和检索任何主题相关的数据。无论你是在开发自己的主题还是插件,Metadata API 都是非常有用的,可以帮助你在 WordPress 中存储和检索特定类型的数据。
功能参考
添加/删除元数据:
获取/更新元数据:
数据库要求
此函数假定存在您指定的专用 MySQL 表$meta_type
。一些所需的表格$meta_types
没有预装的 WordPress 表格,因此必须手动创建。
默认元数据表
假设前缀为 wp_
,WordPress 包含的元数据表是:
-
wp_commentmeta
:特定评论的元数据。 -
wp_postmeta
:页面、帖子和所有其他帖子类型的元数据。 -
wp_usermeta
:用户的元数据。
元数据表结构
要存储上述表列表中未包含的元类型的数据,需要创建一个新表。所有元数据表都需要四列。
-
meta_id
– BIGINT(20):无符号、auto_increment、非空、主键。 -
object_id
– BIGINT(20):无符号,不为空。将object
替换 为正在使用的内容类型的单数名称。例如,此列可能被命名为 post_id 或 term_id。尽管此列像外键一样使用,但不应将其定义为一个。 -
meta_key
– VARCHAR(255):自定义元数据的键。 -
meta_value
– LONGTEXT:自定义元数据的值。
源文件
元数据 API 位于 wp-includes/meta.php
.