2013-02-13 145 views
0

我已经为我的帖子创建了一个元框,它可以保存三个值0,1,2中的一个。使用选择控件选择该值。WordPress | WP_Query问题与meta_query

此外,我检查我的数据库记录,元数据存储在数据库中,但我无法查询元值。

我用它来查询包含元值我的帖子的代码如下:

$args    = array(
    'category__in'  => array(
     22 
    ), 
    'posts_per_page' => 1, 
    'meta_query'  => array(
     array(
      'key'   => 'postStatus', 
      'value'  => 1, 
      'compare'  => '=' 
     ) 
    ) 
); 

$extremely_important = new WP_Query($args); 

while($extremely_important->have_posts()) 
{ 
    $extremely_important->the_post(); 

    the_title(); 
} 

的excact问题,是从22类返回一个职位,但回报将最新的帖子,也就是没有元值设为1.

有什么想法吗?

以下是SQL插入statemts我postmeta表中的数据:

/* 
-- Query: SELECT * FROM wp_postmeta WHERE post_id = 187754 
LIMIT 0, 1000 

-- Date: 2013-02-14 09:50 
*/ 
INSERT INTO `wp_postmeta` (`meta_id`,`post_id`,`meta_key`,`meta_value`) VALUES (16847,187754,'_edit_last','1'); 
INSERT INTO `wp_postmeta` (`meta_id`,`post_id`,`meta_key`,`meta_value`) VALUES (16848,187754,'_TIP_protect_images_post','unchecked'); 
INSERT INTO `wp_postmeta` (`meta_id`,`post_id`,`meta_key`,`meta_value`) VALUES (16849,187754,'_TIP_protect_text_post','unchecked'); 
INSERT INTO `wp_postmeta` (`meta_id`,`post_id`,`meta_key`,`meta_value`) VALUES (16850,187754,'_thumbnail_id','166897'); 
INSERT INTO `wp_postmeta` (`meta_id`,`post_id`,`meta_key`,`meta_value`) VALUES (16851,187754,'_fpp_is_scheduled',''); 
INSERT INTO `wp_postmeta` (`meta_id`,`post_id`,`meta_key`,`meta_value`) VALUES (18502,187754,'_edit_lock','1360791749:1'); 
INSERT INTO `wp_postmeta` (`meta_id`,`post_id`,`meta_key`,`meta_value`) VALUES (18503,187754,'post_status','extremely_important'); 
INSERT INTO `wp_postmeta` (`meta_id`,`post_id`,`meta_key`,`meta_value`) VALUES (18504,187754,'postStatus','1'); 

回答

2

需要邮政类型声明。 (每天学习新东西,post_type默认为发布)。那么在你的陈述中,某件事看起来并不正确。你确定meta_key是'postStatus'。例如不在数组中?

$post_query = new WP_Query(array(
    'post_type' => '', 
    'posts_per_page' => 1, 
    'category__in' => array(22), 
    'meta_query' => array(
     array(
      'key' => 'postStatus', 
      'value' => 1 
     ) 
    ) 
)); 
1

你meta_query应该是这样的:

'meta_query' => array(
     array(
      'key' => 'postStatus', 
      'value' => 1, 
      'compare' => '=', 
     ) 
    ) 

这里给WP_Query类引用

+0

我已经有用户了,但仍然是同样的问题:(无论如何,感谢您的回应:) – 2013-02-13 18:41:18

2

链接也许试试这个?

$args    = 

    array(
     'category__in'  => array(22), 
     'posts_per_page' => 1, 
     'meta_query'  => 
      array(
        'key'   => 'postStatus', 
        'value'  => '1', 
        'compare'  => '=', 
        'type'  => 'NUMERIC' 
       ) 
    );