仅当帖子是公共的时,才读取帖子元值

时间:2015-04-20 作者:pbaldauf

我想检索应用于帖子的meta\\u值。

目前,我执行以下查询

global $wpdb;
$table = $wpdb->prefix.\'postmeta\';
$values = $wpdb->get_results(
     "SELECT meta_value FROM $table WHERE meta_key = \'$metakey\' GROUP BY meta_value",
      ARRAY_A);
这将返回所有可能的meta_values. 是否有可能仅检索meta_values 具有post_status published (而不是private).

1 个回复
最合适的回答,由SO网友:TheGentleman 整理而成

是的,请执行INNER JOIN, 像这样的方法应该会奏效:

$values = $wpdb->get_col($wpdb->prepare("
    SELECT meta_value FROM $wpdb->postmeta
    INNER JOIN $wpdb->posts
      {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id
    WHERE meta_key= %s 
    AND {$wpdb->posts}.post_status=\'publish\'"
,$metakey
));
我改变了$wpdb->get_results()$wpdb->get_col() 因为看起来您只是选择了一列数据作为数组。我还补充道$wpdb->prepare() 因为这通常是最佳实践。

结束

相关推荐

$wpdb->查询无法插入数据

我编写代码将数据保存在Wordpress数据库表中(表名为wp\\U fafa)但无法在中保存数据$qry = $wpdb->query( \"INSERT INTO `wp_fafa` (titile,liveprice,changing,lowest,topest,time) VALUES (\'\" . trim($row->item(0)->nodeValue) . \"\',\'\" . trim($row->item(2)->nodeValue) . \"\',\