简介

这个函数删除指定日志,指定 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

相关函数

add_post_meta(), delete_post_meta(), delete_post_meta_by_key(), get_post_custom(), get_post_custom_keys(), get_post_custom_values(), get_post_meta(), update_post_meta(),