嵌套Wordpress循环与多个元键和&值

时间:2013-03-28 13:44:29

标签: wordpress loops nested

  

所以,我正在建立一个社交政治网站。目前我正在制作包含所有100个北卡罗来纳州县的地图页面,当您悬停每个县时,它会显示相应的选举结果/数据。对于第一个循环,我将选举结果数和百分比提取给每一方(共和党,民主党,其他党)。为了显示每个选举结果的相应候选者,我必须创建一个嵌套循环。我决定将嵌套循环放入一个函数中,因此它不会与模板中的其余代码一起使用。这就是我的functions.php文件中的样子:

function grabcandidatename($county, $office, $party) {

$args = array(array('key' => 'county', 'value' => $county),array('key' => 'office', 'value' => $office),array('key' => 'party', 'value' => $party) );
$c_query = new WP_Query(array(
    'post_type' => 'government_officials',
    'show_posts' => 1,
    'meta_query' => array(
        'relation' => 'AND',
        $args
    )
));
if($c_query->have_posts() ) :
    while ($c_query->have_posts()) : $c_query->the_post(); 
        echo the_title();
    endwhile;
wp_reset_postdata();
endif;
}
  

好的,现在 - 这就是我的模板文件中的这个位:

//This pulls information from the election results that each candidate custom post type can relate to.
$category = get_the_category();
$officer = get_field('office');
  

这是被调用的函数。请记住,它在选举结果的循环中被调出。

grabcandidatename($category,$officer,'republican');
  

现在,我得到的结果是:我得到了候选人姓名,但是我没有得到相应选举结果的候选人姓名,而是在每次选举中列出所有候选人姓名结果。所以,我的想法是我的meta键&值被忽略了。我知道现在我把它们塞进我的$ args变量中,但这只是为了整理一下。如果我使用'meta_query'列出数组,那么我的候选人姓名甚至不会显示在我的选举结果页面上。

     

提前致谢!

好吧,我已经修好了。

好的,所以上面的代码可行。我只是一个白痴,忘了进入县和办公室的元数据选项。但是,为了不让我重新进入所有100个县,我只是将用于选举结果的分类法与候选人联系起来。所以,代码如下。

分享分类:

register_taxonomy('the_county', array('election_results','government_officials'), $args);

在函数内创建嵌套循环:

function grabcandidatename($county, $office, $party) {
$c_query = new WP_Query(array(
    'post_type' => 'government_officials',
    'show_posts' => 1,
    'taxonomy' => 'the_county',
    'term' => $county,
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => 'office',
            'value' => $office
        ),
        array(
            'key' => 'party',
            'value' => $party
        ),
    )
));
if($c_query->have_posts() ) :
    while ($c_query->have_posts()) : $c_query->the_post(); 
        echo the_title();
    endwhile;
wp_reset_postdata();
endif;
}

然后,在页面模板的另一个循环中调用包含嵌套循环的函数:

grabcandidatename($termname,$officer,'republican');

0 个答案:

没有答案