这个函数删除指定日志,指定 key 或者 key 和 value 的所有自定义字段。
用法
<?php delete_post_meta($post_id, $meta_key, $meta_value); ?>
参数
$post_id
(integer) (required) 将要删除自定义字段的日志 ID。
Default: None
$meta_key
(string) (required) 将要删除自定义字段的名称(key)。
Default: None
$meta_value
(boolean) (optional) 将要删除的自定义字段的值,这是用来区分相同 key 的几个字段,如果留空了,则当前日志下指定 key 的多个值都将被删除。
Default: Empty
返回值
(bool)
删除成功返回 true,失败返回 false。
实例
基本用法
<?php delete_post_meta(76, 'my_key', 'Steve'); ?>
其他实例
假设有个插件添加了一些自定义字段,现在要卸载插件,我们希望同时删除其添加的自定义字段,这个插件字段是 related_posts 和 post_inspiration:
下面的代码应该添加到插件的 "uninstall" 函数:
<?php
$allposts = get_posts('numberposts=-1&post_type=post&post_status=any');
foreach( $allposts as $postinfo) {
delete_post_meta($postinfo->ID, 'related_posts');
delete_post_meta($postinfo->ID, 'post_inspiration');
}
?>
或者你想删除所有的自定义字段除了 post_inspiration 是 "Sherlock Holmes":
<?php
$allposts = get_posts('numberposts=-1&post_type=post&post_status=any');
foreach( $allposts as $postinfo) {
delete_post_meta($postinfo->ID, 'related_posts');
$inspiration = get_post_meta( $postinfo->ID, 'post_inspiration' );
foreach( $inspiration as $value ) {
if( $value != "Sherlock Holmes" )
delete_post_meta($postinfo->ID, 'post_inspiration', $value);
}
}
?>
修改记录
Since 1.5.0
源文件
wp-includes/post.php