Return pages that have Page reference fields pointing to this one (references)
By default this excludes pages that are hidden, unpublished and pages excluded due to access control for the current user. To prevent these exclusions specify an include mode in the selector, i.e. include=all
, or you can use
boolean true
as a shortcut to specify that you do not want any exclusions.
Available since version 3.0.107.
Usage
// basic usage
$items = $page->references();
// usage with all arguments
$items = $page->references($selector = '', $field = '');
Arguments
Name | Type(s) | Description |
---|---|---|
selector (optional) | string, bool | Optional selector to filter results by, or boolean true as shortcut for |
field (optional) | Field, string, bool | Optionally limit to pages using specified field (name or Field object),
|
Return value
PageArray
array
Hooking $page->references(…)
You can add your own hook events that are executed either before or after the $page
method is executed. Examples of both are included below. A good place for hook code such as this is in your /site/ready.php file.
Hooking before
The 'before' hooks are called immediately before each $page
method call is executed. This type of hook is especially useful for modifying arguments before they are sent to the method.
$this->addHookBefore('Page::references', function(HookEvent $event) {
// Get the object the event occurred on, if needed
$page = $event->object;
// Get values of arguments sent to hook (and optionally modify them)
$selector = $event->arguments(0);
$field = $event->arguments(1);
/* Your code here, perhaps modifying arguments */
// Populate back arguments (if you have modified them)
$event->arguments(0, $selector);
$event->arguments(1, $field);
});
Hooking after
The 'after' hooks are called immediately after each $page
method call is executed. This type of hook is especially useful for modifying the value that was returned by the method call.
$this->addHookAfter('Page::references', function(HookEvent $event) {
// Get the object the event occurred on, if needed
$page = $event->object;
// An 'after' hook can retrieve and/or modify the return value
$return = $event->return;
// Get values of arguments sent to hook (if needed)
$selector = $event->arguments(0);
$field = $event->arguments(1);
/* Your code here, perhaps modifying the return value */
// Populate back return value, if you have modified it
$event->return = $return;
});
API reference based on ProcessWire core version 3.0.236