3

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

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

但是,正如您所注意到的,只有当元键的值设置为空时,它才会有效地检查元键。

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

是否有使用 WordPress 执行此操作的有效方法?感谢您的任何提示。

更新:这个也行不通:

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

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

4

2 回答 2

14

使用 WP 3.3.0 有一个更好的方法:使用缓存并应用过滤器

 metadata_exists( 'post', $post->ID, $my_metakey )
于 2012-12-11T08:15:23.923 回答
4

自定义字段值存储在wp_postmetaWordPress 数据库表中。所以就用这个:

$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 
}
于 2012-12-11T07:59:10.327 回答