# Exclude Items by Default The Exclude Items by Default feature allows folderish content types to omit child items from the REST API response. This avoids unnecessary catalog queries for blocks-based content where child items are already provided via Simplelayout blocks (`slblocks`). ## Overview By default, the REST API response for any folderish content includes up to 25 child items. For blocks-based pages this is wasted computation — the frontend uses `slblocks` for rendering, not `items`. When the `IExcludeItemsByDefault` behavior is active on a content type, the REST API serializer returns: - `items`: empty list (`[]`) - `items_total`: `0` - `slblocks`: populated as usual The exclusion can be overridden per-request with the query parameter `force_include_items=1`. ## REST API ### Default Response (items excluded) ```javascript const response = await fetch('/Plone/my-page', { headers: { 'Accept': 'application/json' } }); const data = await response.json(); console.log(data.items); // [] console.log(data.items_total); // 0 console.log(data.slblocks); // [...] blocks still present ``` ### Force Including Items Pass `force_include_items=1` to bypass the exclusion and retrieve child items normally: ```javascript const response = await fetch('/Plone/my-page?force_include_items=1', { headers: { 'Accept': 'application/json' } }); const data = await response.json(); console.log(data.items); // [{...}, {...}, ...] console.log(data.items_total); // 5 ``` ```python import requests response = requests.get( 'http://localhost:8080/Plone/my-page', params={'force_include_items': '1'}, headers={'Accept': 'application/json'} ) data = response.json() print(data['items']) ``` ## Configuration The behavior is opt-in. To activate it on a content type, add `wcs.backend.content.behaviors.exclude_items.IExcludeItemsByDefault` to the FTI's behaviors list via GenericSetup: ```xml ```