Wordpress pods:将特定列导出到json

时间:2014-09-22 11:11:37

标签: json wordpress wordpress-plugin podscms

我有以下代码将我的一个pod中的所有项目导出到json。问题是我不需要json文件中的所有130列,但只需要大约20个。因为这将完成大约150个项目,我认为我可以通过不打印所有字段来节省一些加载时间,但我做不知道该怎么做。例如,我只想打印pod中所有项目的名为“title”的列值。我的代码附在下面。

<?php
$pods = pods('name', array('orderby' => 'name asc', 'limit' => -1));
$all_companies = $pods->export_data();
if ( !empty( $all_companies ) ) {
    die(json_encode($all_companies);
}else{
    die(json_encode(array('error' => 'No cars found.')));
} 
?>

我想过做这样的事情:

if ( 0 < $all_companies->total() ) {
    while ($all_companies->fetch()) {
        $json .= $all_companies->field('title');
    }
    $json = rtrim($json, ",");
    $json .= '}}';
}
echo $json;

但它不起作用,代码也变得很长。

1 个答案:

答案 0 :(得分:0)

我制作一个你想要的20个字段的名字数组,然后为每个项目构建一个这些字段的数组,方法是在while循环中传递给Pods::field()的那些字段名称。像这样:

    $pods = pods('name', array('orderby' => 'name asc', 'limit' => -1));
    $fields = array( 'field_1', 'field_2' );
    if ( $pods->total() > 0 ) {
        while ( $pods->fetch() ) {
            foreach ( $fields as $field ) {
                $json[ $pods->id() ] = $pods->field( $field );
            }

        }

        $json = json_encode( $json );

    }

或者,您可以破解我们JSON API/pods/<pod>端点,以接受要作为请求正文返回的字段列表。不会很难做到,如果你让它工作,请务必提交拉动请求。