自定义查询问题访问值

时间:2013-09-03 作者:user1772571

下面是我在wordpress网站上运行的自定义查询,以从Posteta表中获取结果。当我var_dump 结果是,我可以正确地看到值,但当我试图从数组中访问单个字段时,它不起作用。

我错过什么了吗?

    <?php
        $key = "sc_event_year";
        $value = $today_year;
        global $wpdb;       
        $query = new WP_Query( array( \'meta_key\' => $key, \'meta_value\' => $value ) );
        //var_dump($query);
        foreach($query as $result){
            echo $result->post_id;
        }
    ?>

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

您请求了一个数组,并且正在尝试使用一个对象。

$key = "sc_event_year";
$value = $today_year;
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = \'sc_event_year\' AND meta_value = $value", ARRAY_A);
foreach ($results as $result){
    echo $post_id = $result[\'post_id\']; // <-- here was the problem
}
除非$value 是一个数字,您可能在该查询中遇到问题,我无法判断是否有用户提供的数据,但是prepare 如果你打算自己编问题,这是一个很好的习惯。

$key = "sc_event_year";
$value = $today_year;
global $wpdb;
$results = $wpdb->get_results(
  $wpdb->prepare(
    "SELECT * FROM {$wpdb->postmeta} WHERE meta_key = \'sc_event_year\' AND meta_value = %s",
    $value
  ),
  ARRAY_A
);
foreach ($results as $result){
 echo $post_id = $result[\'post_id\'];
}
也就是说,您确定没有任何核心功能或方法可以满足您的需求吗?

结束

相关推荐

Query multiple meta values

我正在开发一个“复选框过滤器”,通过选中值查询帖子。看见this link (编辑:正如您所看到的,此链接中只有2篇帖子,用户检查“MINI”后会得到一个很好的结果,用户检查“MINI”和“COMPACT”后不会给出结果,而不是2篇帖子)。现在,如果用户只检查1个值,它就会工作。一旦用户检查了多个,则不会给出任何结果。我正在使用以下元查询代码(这是较长代码的一部分,这就是为什么会有if语句):if (gap_meta_values($key, $value)) { $arg