update_post_meta()
使用update_metadata()
更新帖子元数据,如果调用update_post_meta()
不指定第四个参数(即。$prev_value
) —或者该值为空,那么是的,update_metadata()
将检查新值是否与数据库中的当前值相同,如果相同,元数据将不会更新。
您可以检查lines #195 to #202 在update_metadata()
相关代码的源代码。
(更新:在下面添加注释;在“附加注释”部分上方添加注释。)
即使您指定$prev_value
(并将其设置为非空值),如果$prev_value
等于new 值:
// Returns FALSE if current database value is \'hidden\'...
update_post_meta( 123, \'_visibility\', \'hidden\', \'hidden\' );
附加说明:
更新元数据(如果存在);否则,不要创建新的update_post_meta()
/
update_metadata()
如果在数据库中找不到现有条目,将自动添加元数据。因此,如果您不希望发生这种情况,可以使用
metadata_exists()
防止自动创建元数据;例如:
// 123 is the post ID.
if ( metadata_exists( \'post\', 123, \'_visibility\' ) ) {
update_post_meta( 123, \'_visibility\', \'hidden\' );
}