人亦已歌 发表于 昨天 09:45

WordPress开发必备:深入解析delete_post_meta函数的使用与实践


<h1>WordPress开发必备:深入解析delete_post_meta函数的使用与实践</h1>
<strong><h2>简介</h2></strong>
<p>这个函数删除指定日志,指定 key 或者 key 和 value 的所有自定义字段。</p>
<strong><h2>用法</h2></strong>
<?php delete_post_meta($post_id, $meta_key, $meta_value); ?>;
<strong><h2>参数</h2></strong>
<p>$post_id<br>
(integer) (required) 将要删除自定义字段的日志 ID。<br>
Default: None</p>
<p>$meta_key<br>
(string) (required) 将要删除自定义字段的名称(key)。<br>
Default: None</p>
<p>$meta_value<br>
(boolean) (optional) 将要删除的自定义字段的值,这是用来区分相同 key 的几个字段,如果留空了,则当前日志下指定 key 的多个值都将被删除。<br>
Default: Empty</p>
<strong><h2>返回值</h2></strong>
<p>(bool)<br>
删除成功返回 true,失败返回 false。</p>
<strong><h2>实例</h2></strong>
<strong><h3>基本用法</h3></strong>
<?php delete_post_meta(76, 'my_key', 'Steve'); ?>;
<strong><h3>其他实例</h3></strong>
<p>假设有个插件添加了一些自定义字段,现在要卸载插件,我们希望同时删除其添加的自定义字段,这个插件字段是 related_posts 和 post_inspiration:</p>
<p>下面的代码应该添加到插件的 "uninstall" 函数:</p>
<?php
$allposts = get_posts('numberposts=-1&amp;post_type=post&amp;post_status=any');
foreach( $allposts as $postinfo) {
    delete_post_meta($postinfo->;ID, 'related_posts');
    delete_post_meta($postinfo->;ID, 'post_inspiration');
}
?>;
<p>或者你想删除所有的自定义字段除了 post_inspiration 是 "Sherlock Holmes":</p>
<?php
$allposts = get_posts('numberposts=-1&amp;post_type=post&amp;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);
    }
}
?>;
<strong><h2>修改记录</h2></strong>
<p>Since 1.5.0</p>
<strong><h2>源文件</h2></strong>
<p>wp-includes/post.php</p>
页: [1]
查看完整版本: WordPress开发必备:深入解析delete_post_meta函数的使用与实践