我有一个非常好的工作条件来检查自定义字段是否存在,这是一行:
if (((get_post_meta($post->ID, $my_metakey, TRUE))=='')
然而,正如您所注意到的,只有在元值设置为空时检查元键才有效。
我想知道如何检查自定义字段名称/元键是否已存在于数据库中,即使我将元值设置为空或默认为空白。
使用Wordpress执行此操作是否有效? 谢谢你的任何提示。
更新:这个也行不通:
<?php if (strlen(get_post_meta($post->ID, $metakey, true)) > 0) : ?>
因为它类似于检查自定义字段是否为空。
答案 0 :(得分:12)
使用WP 3.3.0,有一种更好的方法:使用缓存并应用过滤器
metadata_exists( 'post', $post->ID, $my_metakey )
答案 1 :(得分:2)
自定义字段值存储在wp_postmeta
WordPress数据库表中。所以只需使用它:
$test = $wpdb->get_results( "SELECT meta_key FROM wp_postmeta where meta_key='name_of_custom_field'" );
if (($wpdb->num_rows)>0) {
// custom field exists
}
else {
// field does not exist
}