所以,我正在开发一个社会政治网站。目前我正在处理包含所有 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');
现在,我从这一切中得到的结果是:我正在获取候选人姓名,但不是获取相应选举结果的候选人姓名,而是将所有候选人姓名与每个选举结果一起列出。所以,我的想法是我的元键和值被忽略了。我知道现在我把它们塞进了我的 $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');