1

所以,我正在开发一个社会政治网站。目前我正在处理包含所有 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');
4

0 回答 0