在WordPress中,update_post_meta()
和 get_post_meta()
是两个非常常用的函数,它们用于管理文章(posts)的元数据(metadata)。以下是这两个函数的基本用法:
1. get_post_meta()
get_post_meta()
函数用于获取文章的元数据。
基本语法:
get_post_meta( int $post_id, string $key, bool $single = false )
$post_id
:文章的ID。$key
:要获取的元数据的键名。$single
:如果设置为true
,函数将返回单个值,而不是一个数组。默认为false
。
示例:
$post_id = 7; // 假设我们正在获取ID为7的文章的元数据
$meta_value = get_post_meta( $post_id, 'my_custom_field', true );
echo $meta_value; // 打印出名为 'my_custom_field' 的自定义字段的值
2. update_post_meta()
update_post_meta()
函数用于更新文章的元数据。如果元数据键不存在,它将创建一个新的元数据项。
基本语法:
update_post_meta( int $post_id, string $meta_key, mixed $meta_value, mixed $prev_value = '' )
$post_id
:文章的ID。$meta_key
:要更新的元数据的键名。$meta_value
:要更新的值。$prev_value
:(可选)如果提供,只有当元数据的当前值等于$prev_value
时,元数据才会被更新。
示例:
$post_id = 7; // 假设我们正在更新ID为7的文章的元数据
$meta_key = 'my_custom_field';
$meta_value = 'New Value';
// 更新元数据
update_post_meta( $post_id, $meta_key, $meta_value );
// 如果你想在只有元数据的当前值是 'Old Value' 时才更新它,你可以这样做:
$prev_value = 'Old Value';
update_post_meta( $post_id, $meta_key, $meta_value, $prev_value );
完整示例
以下是一个简单的例子,演示了如何在WordPress中获取和更新文章的元数据:
// 获取文章ID
$post_id = 7;
// 获取文章的某个自定义字段值
$existing_value = get_post_meta( $post_id, 'my_custom_field', true );
// 打印出当前的值
echo "Current value: " . $existing_value . "<br>";
// 更新自定义字段值
$new_value = 'Updated Value';
update_post_meta( $post_id, 'my_custom_field', $new_value );
// 再次获取更新后的值
$updated_value = get_post_meta( $post_id, 'my_custom_field', true );
// 打印出更新后的值
echo "Updated value: " . $updated_value;
在使用这些函数时,请确保在WordPress的适当钩子(如 save_post
)中调用它们,以确保元数据正确地与文章关联。