所以,我正在建立一个社交政治网站。目前我正在制作包含所有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');