如何从post meta中检索不同的元值,排除已删除的帖子

时间:2013-10-31 07:35:07

标签: php mysql database wordpress wpdb

我正在尝试使用计数显示不同的郊区,并为每个郊区显示一个复选框。 目前的代码如下:

  $metakey = 'wpcf-suburb';

  $suburbs = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );

 if ($suburbs) {

echo "<input type=\"checkbox\" value=\"all\" name=\"subchkall\" class=\"fcbox subchkall\">Select All<br/>";

foreach ($suburbs as $suburb) {

$subcount = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->postmeta WHERE meta_key = %s AND meta_value = %s", $metakey, $suburb) );

  echo "<input type=\"checkbox\" value=\"" . $suburb . "\" name=\"arSuburb[]\" class=\"fcbox subchkbox\">" . $suburb . ' (' . $subcount . ')<br/>';

}

}

输出看起来像 - []警官(4)

这将显示所有元字段的计数,其值为“官员”,包括已删除或草稿帖子。

如何显示仅具有发布状态的所有帖子的元字段数。是否可以使用get_col()和get_var()函数?

请帮助..感谢你..

1 个答案:

答案 0 :(得分:0)

$args = array(
    'post_status' => 'publish',
   'meta_key' => 'wpcf-suburb',
   'orderby' => 'meta_value_num',
   'order' => 'ASC',
   'meta_query' => array(
       array(
           'key' => 'wpcf-suburb',

       )
   )
 );
 $query = new WP_Query($args);
 echo "<pre>";
 print_r($query);
 echo "</pre>";

试试这个

请在此处WP QUERY