【描述】
该函数从指定文章中删除含有指定关键字的所有自定义字段
若$unique参数设为true且已指定meta关键字,函数返回false,不作更改;否则返回true。
【用法】
<?php delete_post_meta($post_id, $key, $value); ?>
【参数】
$post_id
(整数)(必需)需删除字段的文章编号
默认值:None
$key
(字符)(必需)将要删除字段的关键字
默认值:None
$value
(字符)(可选)将要删除字段的值。这用来区分含有相同关键字的字段。如果该函数为空,将删除含有给定关键字的所有字段。
默认值:None
【示例】
缺省用法
<?php delete_post_meta(76, 'my_key', 'Steve'); ?>
其他示例
假设有一个插件为文章添加了若干meta值,但卸载插件时希望能删除插件所添加的所有meta关键字。假设插件添加的关键字是related_posts和ost_inspiration。
要删除所有关键字,需要将以下代码添加到“uninstall”函数中:
<?php $allposts = get_posts('numberposts=0&post_type=post&post_status='); foreach( $allposts as $postinfo) { delete_post_meta($postinfo->ID, 'related_posts'); delete_post_meta($postinfo->ID, 'post_inspiration'); } ?>
如果想删除所有关键字,只保留post_inspiration作为探测器那一部分,可以使用如下代码:
<?php $allposts = get_posts('numberposts=0&post_type=post&post_status='); 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); } } ?>
如果已将编号为185的文章删除,之后希望将所有涉及该文章的related_posts关键字删除时,可以:
<?php $allposts = get_posts('numberposts=0&post_type=post&post_status='); foreach( $allposts as $postinfo) { delete_post_meta($postinfo->ID, 'related_posts', '185'); } ?>