【问题标题】:How to check if custom field exist even if meta value is empty in WordPress即使WordPress中的元值为空,如何检查自定义字段是否存在
【发布时间】:2012-12-11 06:45:31
【问题描述】:

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

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

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

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

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

更新:这个也行不通:

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

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

【问题讨论】:

    标签: wordpress custom-fields


    【解决方案1】:

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

     metadata_exists( 'post', $post->ID, $my_metakey )
    

    【讨论】:

      【解决方案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 
      }
      

      【讨论】:

      • 我明白你的意思,这似乎是一个可行的解决方案,但是如果你正在检查特定 post_id 的元键是否已经存在,如何更改它?
      • 我个人认为你的代码很好! (空字段=无字段)。您问的方式是:它是否存在于数据库中的任何位置(对于任何帖子)?否则,不要使用空字符串(=='')检查相等性,只需使用 PHP 的 isset()
      猜你喜欢
      • 2013-06-06
      • 2014-11-12
      • 1970-01-01
      • 2014-02-22
      • 2017-02-07
      • 2011-05-13
      • 2011-03-13
      • 1970-01-01
      • 2015-07-14
      相关资源
      最近更新 更多