LLMS_REST_Posts_Controller::prepare_object_data_for_response( obj $object, WP_REST_Request $request )
Prepares data of a single object for response.
Parameters Parameters
- $object
-
(obj) (Required) Raw object from database.
- $request
-
(WP_REST_Request) (Required) Request object.
Return Return
(array)
Source Source
File: libraries/lifterlms-rest/includes/abstracts/class-llms-rest-posts-controller.php
protected function prepare_object_data_for_response( $object, $request ) {
// Need to set the global $post because of references to the global $post when e.g. filtering the content, or processing blocks/shortcodes.
global $post;
$temp = $post;
$post = $object->get( 'post' ); // phpcs:ignore
setup_postdata( $post );
$removed_filters_for_response = $this->maybe_remove_filters_for_response( $object );
$has_password_filter = false;
if ( $this->can_access_password_content( $object, $request ) ) {
// Allow access to the post, permissions already checked before.
add_filter( 'post_password_required', '__return_false' );
$has_password_filter = true;
}
$data = parent::prepare_object_data_for_response( $object, $request );
// Filter data including only schema props.
$data = array_intersect_key( $data, array_flip( $this->get_fields_for_response( $request ) ) );
if ( $has_password_filter ) {
// Reset filter.
remove_filter( 'post_password_required', '__return_false' );
}
$this->maybe_add_removed_filters_for_response( $removed_filters_for_response );
$post = $temp; // phpcs:ignore
wp_reset_postdata();
return $data;
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0-beta.27 | Introduced. |