perch_blog_custom()
Much like the default perch_content_custom()
function, Blog has perch_blog_custom()
. This function enables you to get a blog listing customized by any of the available parameters.
The perch_blog_custom function is very useful for displaying a specific list of posts on a homepage for example.
The options for filter, match and value work just like
perch_content_custom. Category and tag can be either a single item or an array. To exclude a category or tag from the results, prefix its name with an exclamation point, e.g. !news
.
Requires
- the Blog App installed.
Parameters
Type | Description |
---|---|
Array | Options array, see table below |
Boolean | Set to true to have the value returned instead of echoed. |
Options array
Name | Value |
---|---|
tag | A single tag or array of tags to return content for. To exclude a tag, prefix its name with an exclamation point. |
category | A single category slug or array of category slugs to return content for. To exclude a category, prefix its name with an exclamation point. |
author | A single author slug or ID to filter the results by. |
section | A single section slug to filter the results by. |
blog | The slug of the blog to pull content from. See Multiple Blogs. |
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. |
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 |
Usage examples
The below example filters on postDateTime, returning entries equal to or between the 1st January 2009 and 1st March 2009 which are in the category news or announcements. I have also passed in a custom template for this listing.
<?php
perch_blog_custom(array(
'filter' => 'postDateTime',
'match' => 'eqbetween',
'value' => '2009-01-01, 2009-03-01',
'category' => array('news', 'announcements'),
'template' => 'special_listing.html',
));
?>