Get a filtered list of items.


$Factory->get_filtered_listing($opts, $where_callback, $pre_template_callback);
Type Description Default
Array Options array, see table below
Function See where callback below null
Function See pre-template callback below null

Option array

Option Value
template The name of a template to use to display the content.
sort The ID of the field to sort on.
sort-order Either ASC (ascending), DESC (descending) or RAND (random).
sort-type Either alpha or numeric. Default is alpha.
count The number of items to display.
start The item number to start displaying from.
filter The ID of a field to filter the results by.
match Used with filter, see the below table for values
value Used with filter and match. The value to match. For between and in, takes a comma delimited string. For regex takes PCRE regular expression.
category Filter by one or more categories. See Category filtering
category-match Either any or all. See Category filtering
skip-template True or false. Bypass template processing and return the content in an associative array.
return-html True or false. For use with skip-template. Adds the HTML onto the end of the returned array with key html.
split-items True or false. Return an array of individually templated items.
raw True or false. Returns unprocessed content, for use alongside skip-template.
paginate True or false. Whether to use pagination.
count Integer. (When used with paginate) The number of items to show per page if pagination is being used.
pagination-var The URL query string parameter name to use for the page number. Defaults to page.
page-links True or false. Create numbered page links as well as previous and next links.
page-link-template The template to use (if not the default) to generate the page links.
page-link-style shortened or all. By default a shortened set of page links are generated. If you want a link for every page, set to all.

Possible values for match

Value Aliases Description
eq is, exact equal to
neq not, !eq not equal to
gt greater than
gte greater than or equal to
lt less than
lte less than or equal to
contains the value exists within the content (a simple search)
!contains opposite of contains: the value does not exist within the content
regex regexp using a PCRE regular expression
between match between two values
!between opposite of between
eqbetween match between two values inclusively
!eqbetween opposite of eqbetween
in within match within a comma delimited content list (like a list of tags)
!in !within opposite of in

Where callback

A function that returns a PerchQuery object. The query is merged with the database query generated by the get_filtered_listing() method.

$where_callback = function(PerchQuery $Query, $opts) {
  return $Query;
Type Description
Object PerchQuery object
Array The options array passed from get_filtered_listing()

Pre-template callback

A function to apply to the returned rows before entering the templating phase.

$pre_template_callback = function($rows, $opts) {
  return $rows;
Type Description
Array An array of the returned rows
Array The options array passed from get_filtered_listing()


$API = new PerchAPI(1.0, 'company_app');
$Articles = new CompanyApp_Articles($API);

  'template' => $template,
  'filter' => 'status',
  'match' => 'eq',
  'value' => 'published',