GeekerCode更好的WordPress主题,值得信任的WordPress主题开发商

极美的主题、极致的插件

WordPress删除自定义(meta)字段函数:delete_post_meta()

摘要:delete_post_meta()函数是添加自定义(meta)字段函数:add_post_meta()的反向操作。【描述】该函数从指定文章中删除含有指定关键字的所有自定义字段若$unique参数设为true且已指定meta关键字,函数返回

delete_post_meta()函数是添加自定义(meta)字段函数:add_post_meta()的反向操作。

【描述】

该函数从指定文章中删除含有指定关键字的所有自定义字段

若$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');    
 }  
?>

建站!你有充足的理由选择我们

世界上超过30%的网站是由WordPress搭建,而我们是国内最靠谱的WordPress主题开发商
QQ咨询在线咨询问答互助微信号geekercode微信公众号云服务器