2017-09-18 146 views
0

我正在处理我的第一个Wordpress子主题,用于现有主题。在WordPress中获取与特定meta_key值匹配的帖子ID

的wp_postmeta表有以下几列:

meta_id 
post_id 
meta_key 
meta_value 

感兴趣的几个Meta键对我说:

book_title 
exhibition_name 

我想获得所有的书名,以及它们相应的岗位标识,这与特定的展览名称相匹配。

如果我使用get_post_meta调用,参数$ post_id是必需的,所以它是一个死胡同(据我所知)。

任何想法如何使用WordPress API来实现我想要的功能?

解决方案

答案被@Junaid提供,但语法有它一个小错误:

$args = array(
    'post_type' => 'post', 
    'meta_query' => array(
     array(
      'key' => 'exhibition_name', 
      'value' => 'Science Exhibition' 
     ) 
    ) 
); 

$query = new WP_Query($args); 

if ($query->have_posts()) { 
    while ($query->have_posts()) { 
     $query->the_post(); 
     $post_id = get_the_ID(); 
     $title = get_post_meta($post_id, 'book_title'); 
    } 
} 

回答

1

您是否尝试过使用WP_Query并通过meta_query参数?试试这个代码

$args = array(
    'post_type' => 'post', 
    'meta_query' => array(
     'key' => 'exhibition_name', 
     'value' => 'Science Exhibition' 
    ) 
); 

$query = new WP_Query($args); 

if ($query->have_posts()) : 
    while ($query->have_posts()) : 
     $query->the_post(); 
     $post_id = get_the_ID(); 
     $title = get_post_meta($post_id, 'book_title'); 
    endwhile; 
endif; 

未测试

+0

请注意,你需要有一个数组的数组,而不是单个阵列内的键和值。看到我的文章编辑的实际答案。 – EastsideDeveloper

+0

好的。无论如何,我都是用记事本写的,所以我不知道我在想什么。 – Junaid

相关问题