|
|
@@ -2,6 +2,7 @@
|
|
2
|
2
|
|
|
3
|
3
|
include('reformat-blocks.php');
|
|
4
|
4
|
include('related-items.php');
|
|
|
5
|
+include('formats.php');
|
|
5
|
6
|
|
|
6
|
7
|
class Make_Endpoint_For extends WP_REST_Controller {
|
|
7
|
8
|
private $post_type;
|
|
|
@@ -30,43 +31,35 @@ class Make_Endpoint_For extends WP_REST_Controller {
|
|
30
|
31
|
}
|
|
31
|
32
|
|
|
32
|
33
|
public function get_items( $request ) {
|
|
|
34
|
+ $args = array( 'numberposts' => -1, 'post_type' => $this->post_type );
|
|
|
35
|
+
|
|
33
|
36
|
// Get parameters from request
|
|
34
|
37
|
// /<id>?limit=<num>
|
|
35
|
38
|
$params = $request->get_params();
|
|
36
|
|
-
|
|
37
|
|
- $args = array( 'numberposts' => -1, 'post_type' => $this->post_type );
|
|
38
|
39
|
if(intval($params['limit']) > 0) { $args['numberposts'] = intval($params['limit']); }
|
|
39
|
40
|
if(intval($params['id']) > 0) { $args['include'] = array($params['id']); }
|
|
40
|
41
|
// !: Add order asc/desc
|
|
41
|
42
|
// !: Add orderby
|
|
|
43
|
+
|
|
|
44
|
+ return new WP_REST_Response( $this->prepare_item_for_response($args), 200 );
|
|
|
45
|
+ }
|
|
42
|
46
|
|
|
|
47
|
+ public function prepare_item_for_response( $args) {
|
|
43
|
48
|
$collection = array();
|
|
44
|
49
|
foreach( get_posts($args) as $item ) {
|
|
|
50
|
+ $filtered = default_post_format($item);
|
|
|
51
|
+
|
|
45
|
52
|
// Get those Block!
|
|
46
|
|
- $item->blocks = parse_blocks( $item->post_content );
|
|
47
|
|
- $data = $this->prepare_item_for_response( $item, $request );
|
|
48
|
|
- $collection[$item->ID] = $this->prepare_response_for_collection( $data );
|
|
|
53
|
+ $filtered[blocks] = get_rearrange_blocks(
|
|
|
54
|
+ parse_blocks( $item->post_content )
|
|
|
55
|
+ );
|
|
|
56
|
+ $filtered[hero] = get_post_meta( $item->ID, 'hero_header', true );
|
|
|
57
|
+ $filtered[relatedto] = p2p_related_to($item->ID, $item->post_type);
|
|
|
58
|
+
|
|
|
59
|
+ $collection[$item->ID] = $filtered;
|
|
49
|
60
|
}
|
|
50
|
61
|
wp_reset_postdata();
|
|
51
|
|
- return new WP_REST_Response( $collection, 200 );
|
|
52
|
|
- }
|
|
53
|
|
-
|
|
54
|
|
- public function prepare_item_for_response( $item, $request ) {
|
|
55
|
|
- $filtered = array();
|
|
56
|
|
- $filtered[id] = $item->ID;
|
|
57
|
|
- $filtered[slug] = $item->post_name;
|
|
58
|
|
- $filtered[type] = $item->post_type;
|
|
59
|
|
- $filtered[title] = $item->post_title;
|
|
60
|
|
- $filtered[excerpt] = $item->post_excerpt;
|
|
61
|
|
- $filtered[date] = $item->post_date;
|
|
62
|
|
- $filtered[content] = $item->post_content;
|
|
63
|
|
- $filtered[blocks] = get_rearrange_blocks($item->blocks);
|
|
64
|
|
- $filtered[hero] = get_post_meta( $item->ID, 'hero_header', true );
|
|
65
|
|
- $filtered[relatedto] = p2p_related_to($item->ID, $item->post_type);
|
|
66
|
|
- // Log the request with PHP Console
|
|
67
|
|
- if ( class_exists( 'PC' ) ) PC::debug( $item, 'Blocks' );
|
|
68
|
|
-
|
|
69
|
|
- return $filtered;
|
|
|
62
|
+ return $collection;
|
|
70
|
63
|
}
|
|
71
|
64
|
}
|
|
72
|
65
|
|