bility categories.
	 *
	 * @since 6.9.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return bool True if the request has read access.
	 */
	public function get_items_permissions_check( $request ) {
		return current_user_can( 'read' );
	}

	/**
	 * Checks if a given request has access to read an ability category.
	 *
	 * @since 6.9.0
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return bool True if the request has read access.
	 */
	public function get_item_permissions_check( $request ) {
		return current_user_can( 'read' );
	}

	/**
	 * Prepares an ability category for response.
	 *
	 * @since 6.9.0
	 *
	 * @param WP_Ability_Category $category The ability category object.
	 * @param WP_REST_Request     $request Request object.
	 * @return WP_REST_Response Response object.
	 */
	public function prepare_item_for_response( $category, $request ) {
		$data = array(
			'slug'        => $category->get_slug(),
			'label'       => $category->get_label(),
			'description' => $category->get_description(),
			'meta'        => $category->get_meta(),
		);

		$context = $request['context'] ?? 'view';
		$data    = $this->add_additional_fields_to_object( $data, $request );
		$data    = $this->filter_response_by_context( $data, $context );

		$response = rest_ensure_response( $data );

		$fields = $this->get_fields_for_response( $request );
		if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) {
			$links = array(
				'self'       => array(
					'href' => rest_url( sprintf( '%s/%s/%s', $this->namespace, $this->rest_base, $category->get_slug() ) ),
				),
				'collection' => array(
					'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
				),
				'abilities'  => array(
					'href' => rest_url( sprintf( '%s/abilities?category=%s', $this->namespace, $category->get_slug() ) ),
				),
			);

			$response->add_links( $links );
		}

		return $response;
	}

	/**
	 * Retrieves the ability category's schema, conforming to JSON Schema.
	 *
	 * @since 6.9.0
	 *
	 * @return array<string, mixed> Item schema data.
	 */
	public function get_item_schema(): array {
		$schema = array(
			'$schema'    => 'http://json-schema.org/draft-04/schema#',
			'title'      => 'ability-category',
			'type'       => 'object',
			'properties' => array(
				'slug'        => array(
					'description' => __( 'Unique identifier for the ability category.' ),
					'type'        => 'string',
					'context'     => array( 'view', 'edit', 'embed' ),
					'readonly'    => true,
				),
				'label'       => array(
					'description' => __( 'Display label for the category.' ),
					'type'        => 'string',
					'context'     => array( 'view', 'edit', 'embed' ),
					'readonly'    => true,
				),
				'description' => array(
					'description' => __( 'Description of the category.' ),
					'type'        => 'string',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
				'meta'        => array(
					'description' => __( 'Meta information about the category.' ),
					'type'        => 'object',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
			),
		);

		return $this->add_additional_fields_schema( $schema );
	}

	/**
	 * Retrieves the query params for collections.
	 *
	 * @since 6.9.0
	 *
	 * @return array<string, mixed> Collection parameters.
	 */
	public function get_collection_params(): array {
		return array(
			'context'  => $this->get_context_param( array( 'default' => 'view' ) ),
			'page'     => array(
				'description' => __( 'Current page of the collection.' ),
				'type'        => 'integer',
				'default'     => 1,
				'minimum'     => 1,
			),
			'per_page' => array(
				'description' => __( 'Maximum number of items to be returned in result set.' ),
				'type'        => 'integer',
				'default'     => 50,
				'minimum'     => 1,
				'maximum'     => 100,
			),
		);
	}
}
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//ppp-nomads.ch/wp-content/plugins/wordpress-seo/css/main-sitemap.xsl"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<sitemap>
		<loc>https://ppp-nomads.ch/post-sitemap.xml</loc>
		<lastmod>2026-07-10T12:59:27+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://ppp-nomads.ch/page-sitemap.xml</loc>
		<lastmod>2026-08-17T08:30:31+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://ppp-nomads.ch/product-sitemap.xml</loc>
		<lastmod>2026-08-12T08:50:04+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://ppp-nomads.ch/category-sitemap.xml</loc>
		<lastmod>2026-07-10T12:59:27+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://ppp-nomads.ch/product_cat-sitemap.xml</loc>
		<lastmod>2026-08-12T08:50:04+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://ppp-nomads.ch/product_tag-sitemap.xml</loc>
		<lastmod>2026-08-12T08:50:04+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://ppp-nomads.ch/author-sitemap.xml</loc>
		<lastmod>2023-11-22T15:37:53+00:00</lastmod>
	</sitemap>
</sitemapindex>
<!-- XML Sitemap generated by Yoast SEO -->