0

我想用我的一些帖子在特定类别中打印 json。

我想要 ex.: titlecategory然后是一些带有键latlon(坐标)的元数据。

结果/js​​on: [{"meta_key1":"meta_value1","meta_key2":"meta_value2","post_title":"The title","post_cat":"cat_ID")"}

案例/例子: [{"lat":"55.395263","lon":"10.385723","post_title":"Mammas Pizza","post_cat":"Fast Food")"}

这是我的一项测试 - 我的查询的下一步是什么?:

$result = $wpdb->get_results("SELECT a.*, b.* FROM $wpdb->posts a LEFT JOIN $wpdb->postmeta b ON b.post_id = a.ID");

    if (!$result['error']) {
        print json_encode($result);
    } else {
        errorJson('fail');
    }
4

1 回答 1

0

首先,我们定义函数以在一个不错的数组中获取帖子类别。

function get_post_categories()
{
    $categories = get_the_category();
    $cats =array(); $counter=0;
    foreach ($categories as $cat)
        $cats[$counter] = $cat->cat_name;

    return implode(',',$cats);
}

然后我们定义一个函数来获取我们的帖子并将信息打包到一个漂亮的 JSON 数组中。

function get_my_json_posts()
{
    $args = array (
        'post_type' => 'post',
        'post_status' => 'publish'
    );
    $posts = array(); $i= 0;
    $query = new WP_Query($args);
    while ($query->have_posts()) : $query->the_post();
        $posts[$i++] = array(
            'title' => get_the_title();
            'categories' => get_post_categories();
            'lat' => get_post_meta('lat');
            'lon' => get_post_meta('lon');
        );
    endwhile;

    return json_encode($posts);
}

如果您在使用 $args 时遇到问题,您可以在此处查看所有参数:Class reference-> WP_Query

于 2013-10-28T01:12:14.607 回答