Have been working a lot with the WP-Rest API lately, and getting it to display certain content on the public side. I needed a way to show the taxonomy terms so we can dynamically populate a front-end filtering interface on another site using the “server” site as the backend.
class all_terms { public function __construct() { $version = '2'; $namespace = 'wp/v' . $version; $base = 'all-terms'; register_rest_route($namespace, '/' . $base, array( 'methods' => 'GET', 'callback' => array($this, 'get_all_terms'), )); } public function get_all_terms($object) { $return = array(); // Get taxonomies $args = array( 'public' => true, '_builtin' => false ); $output = 'names'; // or objects $operator = 'and'; // 'and' or 'or' $taxonomies = get_taxonomies($args, $output, $operator); foreach ($taxonomies as $key => $taxonomy_name) { if($taxonomy_name = $_GET['term']){ $return = get_terms($taxonomy_name); } } return new WP_REST_Response($return, 200); } }