/** * Return this Page's sibling pages, optionally filtered by a selector. * * Note that the siblings include the current page. To exclude the current page, specify "id!=$page". * * @param Page $page * @param string $selector Optional selector to filter siblings by. * @return PageArray * */ public function siblings(Page $page, $selector = '') { if ($selector) { $selector .= ", "; } $selector = "parent_id={$page->parent_id}, {$selector}"; if (strpos($selector, 'sort=') === false) { $parent = $page->parent(); $selector .= "sort=" . ($parent ? $parent->sortfield : 'sort'); } $options = array('caller' => 'page.siblings'); return $page->wire('pages')->find(trim($selector, ", "), $options); }