A WordPress plugin that serves up slimmer WP Rest API endpoints.
better-rest-endpoints/v1/posts
Gets a collection of posts. Accepts the following parameters:
- acf (boolean - setting to false omits 
acffrom being returned) - author (string) limit posts by author nice name (user_nicename)
 - category id (int)
 - category_name (string)
 - content (boolean) set to false to omit content from showing in JSON response
 - exclude (int) a post ID to exclude from the response
 - media (boolean - setting to false omits 
media(featured media) from being returned) - order (string - 'ASC' vs 'DESC')
 - orderby (string)
 - page (int)
 - per_page (int)
 - tag id (int)
 - yoast (boolean - setting to false omits 
yoastfrom being returned) 
It returns a JSON response with the following:
- ACF fields, if applicable
 - all possible thumbnail sizes & URL
 - Author, user_nicename, & Author ID
 - Categories
 - Category IDs
 - content
 - date (ISO 8601)
 - excerpt
 - id
 - slug
 - Tag IDs
 - Tags
 - title
 - Yoast SEO fields, if applicable
 
better-rest-endpoints/v1/post/{id}
Get a post by ID.
Accepts the following parameters:
- ID (int)
 
Returns a JSON response with the following:
- ACF fields, if applicable
 - all possible thumbnail sizes & URLs
 - Author, user_nicename, & Author ID
 - Categories
 - Category IDs
 - content
 - date (ISO 8601)
 - excerpt
 - id
 - slug
 - Tag IDs
 - Tags
 - title
 - Yoast SEO fields, if applicable
 
better-rest-endpoints/v1/post/{slug}
Get a post by ID.
Accepts the following parameters:
- slug (string)
 
Returns a JSON response with the following:
- ACF fields, if applicable
 - all possible thumbnail sizes & URLs
 - Author, user_nicename, & Author ID
 - Categories
 - Category IDs
 - content
 - date (ISO 8601)
 - excerpt
 - id
 - slug
 - Tag IDs
 - Tags
 - title
 - Yoast SEO fields, if applicable
 
better-rest-endpoints/v1/pages
Gets a collection of pages. Accepts the following parameters:
- acf (boolean - setting to false omits 
acffrom being returned) - content (boolean - setting to false hides the content from the response)
 - exclude (int)
 - exclude (int) a post ID to exclude from the response
 - media (boolean - setting to false omits 
media(featured media) from being returned) - order (string - 'ASC' vs 'DESC')
 - orderby (string)
 - page (int)
 - per_page (int)
 - yoast (boolean - setting to false omits 
yoastfrom being returned) 
Returns the following JSON Response:
- ACF Fields
 - all possible thumbnail sizes & URLs
 - Content
 - ID
 - Slug
 - Template Name
 - Title
 - Yoast SEO Fields
 
better-rest-endpoints/v1/page/{id}
Get a page by ID.
Accepts the following parameters:
- ID (int)
 
Returns a JSON response with the following:
- ACF fields, if applicable
 - all possible thumbnail sizes & URLs
 - content
 - id
 - slug
 - template name
 - title
 - Yoast SEO fields, if applicable
 
better-rest-endpoints/v1/{custom_post_type}
Gets a collection of posts from a custom post type. Accepts the following parameters:
- acf (boolean - setting to false omits 
acffrom being returned) - content (boolean - setting to false omits 
the_contentfrom being returned) - exclude (int) a post ID to exclude from the response
 - media (boolean - setting to false omits 
media(featured media) from being returned) - orderby (string) - see the codex for options, currently does not support multiple values
 - page (int)
 - per_page (int)
 - yoast (boolean - setting to false omits 
yoastfrom being returned) 
Returns the following JSON response:
- ACF fields if applicable
 - all possible thumbnail sizes & URLs
 - Author, user_nicename, & Author ID
 - content
 - date (ISO 8601)
 - excerpt
 - ID
 - post terms
 - slug
 - title
 - Yoast SEO fields if applicable
 
better-rest-endpoints/v1/{custom_post_type}/{id}
Gets a single custom post type item. Accepts the following parameters:
- ID
 
Returns the following JSON Response:
- ACF Fields, if applicable
 - all possible thumbnail sizes & URLs
 - Author, user_nicename, & Author ID
 - content
 - date (ISO 8601)
 - excerpt
 - ID
 - post terms
 - slug
 - title
 - Yoast SEO Fields, if applicable
 
better-rest-endpoints/v1/{custom_post_type}/{slug}
Gets a single custom post type item. Accepts the following parameters:
- slug
 
Returns the following JSON Response:
- ACF Fields, if applicable
 - all possible thumbnail sizes & URLs
 - Author, user_nicename, & Author ID
 - content
 - date (ISO 8601)
 - excerpt
 - ID
 - post terms
 - slug
 - title
 - Yoast SEO Fields, if applicable
 
better-rest-endpoints/v1/{taxonomy}/{term}
Gets posts from a taxonomy term. Accepts the following parameters:
- acf (boolean - setting to false omits 
acffrom being returned) - content (boolean - setting to false omits 
the_contentfrom being returned) - exclude (int) a post ID to exclude from the response
 - media (boolean - setting to false omits 
media(featured media) from being returned) - orderby (string) - see the codex for options, currently does not support multiple values
 - page (int)
 - per_page (int)
 - yoast (boolean - setting to false omits 
yoastfrom being returned) 
Returns the following JSON Response:
- ACF Fields, if applicable
 - all possible thumbnail sizes & URLs
 - Author, user_nicename, & Author ID
 - content
 - date (ISO 8601)
 - excerpt
 - ID
 - post terms
 - slug
 - title
 - Yoast SEO Fields, if applicable
 
better-rest-endpoints/v1/menus/{menu-slug}
Gets a WordPress Menu by slug. Accepts no parameters.
Returns the following JSON Response in each item object:
- classes (array)
 - description
 - ID
 - menu item parent
 - menu_order
 - slug
 - target
 - title
 - url
 
better-rest-endpoints/v1/taxonomies
Gets a list of taxonomies used by WordPress. Accepts no parameters.
Returns the following JSON response in each item object:
- Description
 - Hierarchical (true/false)
 - Name
 - Slug
 
better-rest-endpoints/v1/search
Gets a collection of posts and pages based on the search parameter. Accepts the following parameters:
- acf (boolean - setting to false omits 
acffrom being returned) - category id (int)
 - content (boolean) set to false to omit content from showing in JSON response
 - media (boolean - setting to false omits 
media(featured media) from being returned) - page (int)
 - per_page (int)
 - search (string | required)
 - tag id (int)
 - yoast (boolean - setting to false omits 
yoastfrom being returned) 
It returns a JSON response with the following (returns an empty array if no posts found):
- ACF fields, if applicable
 - all possible thumbnail sizes & URL
 - Author, user_nicename, & Author ID
 - Categories
 - Category IDs
 - content
 - date (ISO 8601)
 - excerpt
 - id
 - slug
 - Tag IDs
 - Tags
 - title
 - Yoast SEO fields, if applicable
 
add_filter('better_rest_endpoints_cpt_collection', function($cpt_collection){
	$cpt_collection = array_flip($cpt_collection);
	unset($cpt_collection['oembed_cache']);
	unset($cpt_collection['_pods_template']);
	unset($cpt_collection['_pods_pod']);
	unset($cpt_collection['_pods_field']);
	$cpt_collection = array_values( array_flip($cpt_collection) );
	return $cpt_collection;
});