Separating the Output PRO
The output of the multiple {articles}
tag will be whatever output is generated for every article depending on your Data Tags.
This includes any markup you place between the {articles} tags like new lines.
Let’s say you want to list all titles of all the articles in the category "Dogs". And you do:
{articles category="Dogs"}[title]{/articles}
As you can see all titles are output as one long line without any spaces or lines to separate them.
This behavior might be desired when surrounding the Data Tags with a customized div
layout, but in this example, we will most likely want to separate the articles.
To output every title on a new line, you can simply place the closing {/articles}
tag on a new line:
{articles category="Dogs"}[title]
{/articles}
Afghan Hound
...
Yakutian Laika
Yorkshire Terrier
But what if you want a comma-separated list? To do that, you can use the separator="..."
attribute. This will place whatever you put inside the separator attribute between every article. For example:
{articles category="Dogs" separator=", "}[title]{/articles}
You can also add last-separator="..."
to use a different separator between the last 2 articles:
{articles category="Dogs" separator=", " last-separator=" and "}[title]{/articles}
Ordering PRO
In the Articles Anywhere system plugin settings you can define the default ordering of the articles returned by the plugin tag.
You can override the ordering in the {articles}
tag by adding an ordering="..."
attribute.
You can order the output of the articles by a huge range of data types, including any article data, category data, dates, and even by custom field values - pretty much by anything you can think of.
Here are just some of the most common orderings available:
title
the title of the articlealias
the alias of the articleid
the ID of the articlehits
the number of views that the article receivedcreated
,publish-up
,publish-down
,modified
the creation, published or modified dates.author:id
,author:name
,author:username
the id, name and username of the article author (Created by)modifier:id
,modifier:name
,modifier:username
the id, name and username of the article modifier (Modified by)category
orcategory:title
the title of the category attached to the articlecategory:alias
the alias of the category attached to the articlecategory:id
orcatid
the id of the category attached to the articleordering
the order in the "Articles" managerfeatured-ordering
the order in the "Featured Articles" managercategory:ordering
the order in the "Category" managerfield-name
any other available Article Data (must match the column name in the database table), for example:metakey
my-custom-field
the value of any Custom Field attached to the article. Use the name/alias of the desired field, for example:nr-of-legs
random
random order
Check out the Full List of Data Types available for everything you can use as ordering.
Ordering Direction
You can then specify the ordering direction with either ASC
for ascending, or DESC
for descending.
For example, to output all articles from category "Animals" ordered by title (alphabetically) in ascending order:
{articles category="Animals" ordering="title ASC"}...{/articles}
To place all articles in categories "Cats" and "Dogs" in random order:
{articles category="Cats,Dogs" ordering="random"}...{/articles}
Multiple Orderings
You can even specify subsequent orderings to be used, in order of precedence, when the value of the first ordering is the same. You do so by simply separating the multiple orderings via comma:
{articles category="Animals" ordering="publish-up DESC, title ASC"}...{/articles}
There is no limit to how many levels of ordering you can use. If the values of all specified orderings are the same for certain articles, the output will fall back to the default ordering set in the Plugin Settings.
Limit/Range PRO
By default Articles Anywhere will show up to 100 articles matching the given Filters. But in the Articles Anywhere system plugin settings you can change the default limit of maximum articles to be returned.
And you can also individually define the limit for each {articles}
tag with a limit="..."
attribute.
For example, to place only the first 20 articles from the category "Animals":
{articles category="Animals" limit="20"}...{/articles}
Offset
You can also show a range of articles not starting from the start. For instance, to show articles 11 to 30, you can do:
{articles tags="Cute but Dangerous" limit="11-30"}...{/articles}
Alternatively, you can use an offset="..."
attribute to simply exclude the first X amount of articles from the results.
The following example achieves the same result as before, showing articles 11 to 30 (20 articles starting from the 11th):
{articles tags="Cute but Dangerous" offset="10" limit="20"}...{/articles}
One per Category
You also have the ability to limit the results to only return one article per category, by using a one-per-category="true"
attribute.
This can prove useful when showing articles from multiple categories (or when including child categories), and only wanting to show one article from each:
{articles category="Animals" include-child-categories="true" one-per-category="true" ordering="publish-up DESC"}...{/articles}
Minimum
You can also define a minimum number of articles that should be returned, by using a minimum="..."
attribute:
{articles category="Animals" minimum="3" limit="20" empty="Less than 3 articles found!"}...{/articles}
If the tag (with the specified filters) does not result in at least the set minimum amount of articles, the output will return empty.
Output when empty PRO
Let's say you created a tag to output all articles from the category "Fish" that have the tag "Has legs". But when there are no articles matching these filters, you want to place a little message saying "Currently no fish found with legs!".
You can place this text in the empty attribute:
{articles category="Fish" tags="Has 3 legs" empty="Currently no fish found with legs!"}...{/articles}
You can use some markup inside the empty
attribute. And add links and such. But if you want to output more complex content when there are no results, you can also use the {articles-else}
tag:
{articles category="Fish" tags="Has 3 legs"}
...
{articles-else}
<div class="alert alert-info">Currently no fish found with legs!</div>
{/articles}
Which would result in:
Fix HTML PRO
By default, Articles Anywhere will try to fix any HTML structure issues it finds.
In the Articles Anywhere system plugin settings you can control the setting. This is on by default as it’s often necessary to deal with surrounding HTML tags. Only switch this off if you have issues with this.
You can individually override this setting in the {articles}
tag by adding a fixhtml="..."
attribute with either a true
(on) or false
(off) value.
{articles category="Penguins" fixhtml="false"}...{/articles}