我尝试使用json-api来获取一些wooccommerce数据。使用常规的wp-jasonAPI,我可以使用自定义的帖子类型"product"来获取大部分帖子数据,但我也需要类别数据,比如名称和特别的类别图像。为此,我想围绕函数get_terms("product_cat")编写一个简单的控制器。我敢打赌,这是因为我缺乏php oop知识,无法添加键(image)和值(image_url)。我甚至只在json中添加了最后一个图像对的详细信息,但我真的很想找到每个类别对象的这些详细信息,作为所有其他键、值对之间的图像值
这是我的控制器:
<?php
/*
Controller name: WooCommerce Category Images
Controller description: Get Woocommmerce category images controller
*/
final class JSON_API_woocatimages_Controller {
public function info() {
return array(
'version' => '1.0'
);
}
public function get_category_images() {
$args = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids
);
$product_categories = get_terms( 'product_cat', $args );
foreach( $product_categories as $cat ) {
// get the thumbnail id user the term_id
$thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
// get the image URL
$image = wp_get_attachment_url( $thumbnail_id );
// here i probably do something wrong.....
$product_categories['image'] = $image;
}
return array(
"WooCommerce Categories" => $product_categories
);
}
}
结果如下:http://funshopping.mystagingwebsite.com/api/woocatimages/get_category_images/
我可以在如何为每个product_categories数组添加这些图像数据和/或如何使用标准json-api方法(如"get_category_index")以不同的方式进行添加方面提供一些帮助。老实说,我不知道谁该用它,除了取回类别索引。这与我所看到的关于如何获取菜单索引的控制器相同,但我希望能够获取所使用的实际菜单的值和id。我确信我在这里错过了什么。
控制器应为:
<?php
/*
Controller name: WooCommerce Category Images
Controller description: Get Woocommmerce category images controller
*/
final class JSON_API_woocatimages_Controller {
public function info() {
return array(
'version' => '1.0'
);
}
public function get_category_images() {
$args = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids
);
$product_categories = get_terms( 'product_cat', $args );
foreach( $product_categories as $cat ) {
// get the thumbnail id user the term_id
$thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
// get the image URL
$image = wp_get_attachment_url( $thumbnail_id );
$cat->{'image'}=$image;
}
return array(
"WooCommerce Categories" => $product_categories
);
}
}