为自定义帖子定制自定义类别

时间:2014-07-15 08:08:26

标签: wordpress custom-post-type

我有一个json文件,其中包含自定义分类的数据。 然后我需要过滤那个..我对postmeta链接和其他字段没有任何问题。但我不能把这个类别变成json。然后无法过滤。

我知道答案必须非常简单,但我无法弄清楚2天。

function getItems( $meta_query ) {

$params = array(
    'post_type'         => 'property',
    'nopaging'          =>  true,
    'post_status'       => 'publish',
    'meta_query'        =>  array(),

$meta_query = array('meta_query'=>array(), 'relation' => 'AND');    

if (!empty($_POST['city']))
{
   $params['meta_query'][] =array(
          'key' => 'property_city',
          'value' => $_POST['city'],
          'compare' => 'LIKE'
        );
}

if(!empty($_POST['parish']))
{
   $params['meta_query'][] = array(
          'key' => 'property_state',
          'value' => $_POST['parish'],
          'compare' => 'LIKE'
    );
}
//..................ETC..........................

我现在所拥有的类别:

//if (!empty($_POST['category']))
    /*{
    $params['meta_query'][] = array(
                'taxonomy' => 'pcategory',
                'field' => 'slug',
                'terms' => $_POST['category']->slug
                );
    }*/

    $itemsQuery = new WP_Query();
    $properties = $itemsQuery -> query($params);    

    // add property details
    foreach ($properties as $key => $property) {
        // options
        $property->optionsDir = get_post_meta($property->ID, 'property', true); 
        $city = get_post_meta($property->ID,  'property_city', true);
        $parish = get_post_meta($property->ID,  'property_state', true);    
        $link = get_permalink($property->ID);
        $category = get_the_terms($property->ID,'pcategory' );


        $properties[$key]->link = array(
        'link' => $link,
        );

        //postmeta
        $properties[$key]->postmeta = array(
         'city' => $city,
         'parish' => $parish,
         'region' => $region,
         'link' => $link,
         'category' => $category, 
        );

    }

    return $properties;
}   

1 个答案:

答案 0 :(得分:0)

 $category = get_the_terms($property->ID,'pcategory' );

上面的代码将返回所有细节,例如term id,name,slug等有关该术语的信息,作为数组对象。

您需要提取所需的详细信息。

此外," pcategory"是自定义分类法。

因此,在下面的代码中,

$properties[$key]->postmeta = array(
         'city' => $city,
         'parish' => $parish,
         'region' => $region,
         'link' => $link,
         'category' => $category, 
        );

'类别'将不会被正确解释,因为它是自定义分类法而不是默认的wordpress分类法。

如果将这些参数发送到WP_Query(),您可以提及' tax_query'如下所示,

'tax_query' => array(
        array(
            'taxonomy' => 'pcategory',
            'field' => 'slug',
            'terms' => 'demo'
        )

在这里,"演示"是自定义分类的示例slug。

甚至,单个帖子可以有多个与之关联的类别。因此,您需要提取所需的类别详细信息。

在'tax_query'你也可以指定" term_id"或其他细节。