0

这会让我发疯。我有使用 Pod 的自定义内容类型,我正在尝试基于父级获取所有相关记录。在这种情况下,我有州和县。

我开始:

$states = pods( 'state', $params);

果然,我输入了所有状态。接下来,我想遍历所有州并通过“state_id”获取与该州相关的县,但不知道如何做到这一点。这就是我所拥有的。

while ( $states->fetch() ) {
    echo $states->display( 'state_name' ) . "<br />";
    $params = [
        'where'=>"meta_value.state_id = 19"
    ];
    $county = pods( 'county', $params);
    print_r($county);
}

当然 where 子句是错误的,但文档充其量是令人困惑的。我看到诸如“related_field_name.meta_value”或“related_field_name.field_name”之类的东西。我用 where 子句(与县相关的州 ID)尝试了上述查询,state.meta_value=19它只给了我一个巨大的信息列表,但没有记录。

在 wordpress 数据库中,我有 wp_postmeta,其中包含县记录的许多 meta_key 和 meta_value,包括一个“state_id”的 meta_key,其值为“19”,我想在循环中匹配。

我怎么能说“抓住我所有 state_id 为 19 的帖子记录”?

4

1 回答 1

0

尝试这个:

<?php
$params = array(
    'limit' => -1,
);

$states = pods( 'state', $params );

while ( $states->fetch() ) {
    // Pods::index() maps to "post_title"
    echo '<h3>' . $states->index() . '</h3>';

    // Pods::id() maps to "ID"
    $county_params = array(
        'where' => 'state_id.meta_value = ' . (int) $states->id(),
    );

    /*
    // If you had a relationship field instead
    // and the field was named "state"
    // and it was related to the "state" post type
    // then it would be:
    $county_params = array(
        'where' => 'state.ID = ' . (int) $states->id(),
    );
    */

    $county = pods( 'county', $county_params );

    // List all counties for state
    if ( 0 < $county->total() ) {
        echo '<ul>';

        while ( $county->fetch() ) {
            // index() maps to "post_title"
            echo '<li>' . $county->index() . '</li>';
        }

        echo '</ul>';
    }
}
于 2015-09-01T17:32:39.603 回答