即使在Wordpress中元值为空,如何检查自定义字段是否存在

时间:2012-12-11 06:45:31

标签: wordpress custom-fields

我有一个非常好的工作条件来检查自定义字段是否存在,这是一行:

if (((get_post_meta($post->ID, $my_metakey, TRUE))=='')

然而,正如您所注意到的,只有在元值设置为空时检查元键才有效。

我想知道如何检查自定义字段名称/元键是否已存在于数据库中,即使我将元值设置为空或默认为空白。

使用Wordpress执行此操作是否有效? 谢谢你的任何提示。

更新:这个也行不通:

<?php if (strlen(get_post_meta($post->ID, $metakey, true)) > 0) : ?>

因为它类似于检查自定义字段是否为空。

2 个答案:

答案 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 
}