如何查询Wordpress中的自定义字段?

问题描述:

我试图查询基于自定义字段的帖子,然后在循环中显示它们。我已经检查了代码和其他来源,并对代码进行了重复检查,但查询仍然无法正常工作。我究竟做错了什么?如何查询Wordpress中的自定义字段?

剥离下来的要领,我的代码看起来是这样的:

<?php 
    $args = array(
    'meta_key' => 'my_custom_field' 
); 
    $my_query = new WP_Query($args); 
?> 
<?php if ($my_query->have_posts()) { ?> 
    <p>Success, we have posts!!!</p> 
<?php } else { ?> 
    <p>Uh Oh, No posts!!!</p> 
<?php } ?> 

条件语句在下降通过并返回“呃哦,不上岗”。

我检查了postmeta表,肯定有包含meta_key _my_custom_field的帖子。我已经尝试了使用和不使用前导下划线的查询。

我在做什么错?

我用这个搜索两个自定义日期字段之间的日期在我的自定义后键入“porfolio”,我认为你是在一个类似的情况:

$args = array(
        'post_type' => 'portfolio', 
        'posts_per_page' => '10', 
        'meta_query' => array(
             array('key' => 'portfolio_start_date', 'value' => data_to_db2($ricerca_data), 'compare' => '<=', 'type' => 'NUMERIC'), 
             array('key' => 'portfolio_end_date', 'value' => data_to_db2($ricerca_data), 'compare' => '>=', 'type' => 'NUMERIC') 
             ) 
       ); 
$the_query = new WP_Query($args); 
if ($the_query->have_posts()) { 
$post_count = wp_count_posts(); 
while ($the_query->have_posts()) { 

// DO WHAT YOU WANT 

} 

} 

我的建议是在$使用meta_query args array

+0

感谢firegab,我试过这种方法,但仍然没有成功。如果我删除meta_query,并且只查询例如post_type,函数返回预期的帖子。所以在设置或查询元键时必定会出现错误。我不确定如何调试这个。有什么建议?你的mysql表中的 –

+0

wp_postmeta字段结果保存是否正确? – Firegab

+0

嗨firegab,是的,它被正确保存。我只是尝试使用此自定义字段创建多个帖子和页面,并突然查询正在工作。对于改变了什么感到困惑,但现在正在开展工作。感谢您的帮助 –