WP_REST_Server::add_active_theme_link_to_index()protectedWP 5.7.0

Adds a link to the active theme for users who have proper permissions.

Method of the class: WP_REST_Server{}

No Hooks.

Return

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->add_active_theme_link_to_index( $response );
$response(WP_REST_Response) (required)
REST API response.

Changelog

Since 5.7.0 Introduced.

WP_REST_Server::add_active_theme_link_to_index() code WP 6.5.2

protected function add_active_theme_link_to_index( WP_REST_Response $response ) {
	$should_add = current_user_can( 'switch_themes' ) || current_user_can( 'manage_network_themes' );

	if ( ! $should_add && current_user_can( 'edit_posts' ) ) {
		$should_add = true;
	}

	if ( ! $should_add ) {
		foreach ( get_post_types( array( 'show_in_rest' => true ), 'objects' ) as $post_type ) {
			if ( current_user_can( $post_type->cap->edit_posts ) ) {
				$should_add = true;
				break;
			}
		}
	}

	if ( $should_add ) {
		$theme = wp_get_theme();
		$response->add_link( 'https://api.w.org/active-theme', rest_url( 'wp/v2/themes/' . $theme->get_stylesheet() ) );
	}
}