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