Given an array or CSV string of Page IDs, return a PageArray
Optionally specify an $options array rather than a template for argument 2. When present, the 'template' and 'parent_id' arguments may be provided in the given $options array. These options may be specified:
LOAD OPTIONS (argument 2 array):
- cache: boolean, default=true. place loaded pages in memory cache?
- getFromCache: boolean, default=true. Allow use of previously cached pages in memory (rather than re-loading it from DB)?
- template: instance of Template (see $template argument)
- parent_id: integer (see $parent_id argument)
- getNumChildren: boolean, default=true. Specify false to disable retrieval and population of 'numChildren' Page property.
- getOne: boolean, default=false. Specify true to return just one Page object, rather than a PageArray.
- autojoin: boolean, default=true. Allow use of autojoin option?
- joinFields: array, default=empty. Autojoin the field names specified in this array, regardless of field settings (requires autojoin=true).
- joinSortfield: boolean, default=true. Whether the 'sortfield' property will be joined to the page.
- findTemplates: boolean, default=true. Determine which templates will be used (when no template specified) for more specific autojoins.
- pageClass: string, default=auto-detect. Class to instantiate Page objects with. Leave blank to determine from template.
- pageArrayClass: string, default=PageArray. PageArray-derived class to store pages in (when 'getOne' is false).
- pageArray: PageArray, default=null. Optional predefined PageArray to populate to.
- page (Page|null): Existing Page object to populate (also requires the getOne option to be true). (default=null)
- caller (string): Name of calling function, for debugging purposes (default=blank).
Use the $options array for potential speed optimizations:
- Specify a 'template' with your call, when possible, so that this method doesn't have to determine it separately.
- Specify false for 'getNumChildren' for potential speed optimization when you know for certain pages will not have children.
- Specify false for 'autojoin' for potential speed optimization in certain scenarios (can also be a bottleneck, so be sure to test).
- Specify false for 'joinSortfield' for potential speed optimization when you know the Page will not have children or won't need to know the order.
- Specify false for 'findTemplates' so this method doesn't have to look them up. Potential speed optimization if you have few autojoin fields globally.
- Note that if you specify false for 'findTemplates' the pageClass is assumed to be 'Page' unless you specify something different for the 'pageClass' option.
Usage
// basic usage
$items = $pagesLoader->getById($_ids);
// usage with all arguments
$items = $pagesLoader->getById($_ids, $template = null, $parent_id = null);
Arguments
Name | Type(s) | Description |
---|---|---|
_ids | array, WireArray, string, int | Array of page IDs, comma or pipe-separated string of IDs, or single page ID (string or int) or in 3.0.156+ array of associative arrays where each in format: [ 'id' => 123, 'templates_id' => 456 ] |
template (optional) | Template, array, string, int, null | Specify a template to make the load faster, because it won't have to attempt to join all possible fields... just those used by the template. Optionally specify an $options array instead, see the method notes above. |
parent_id (optional) | int, null | Specify a parent to make the load faster, as it reduces the possibility for full table scans. This argument is ignored when an options array is supplied for the $template. |
Return value
Exceptions
Method can throw exceptions on error:
WireException
PagesLoader methods and properties
API reference based on ProcessWire core version 3.0.236