Skip to content

Functions ​

Magic wp.* function ​

The magic wp.* function allows you to use all WordPress native functions. Just replace the * with the function name you'd like to use, e.g. wp.get_post().

INFO

You can use all WordPress functions following this syntax: {{ wp.function_name(parameter) }}

WARNING

ASA2 does not check what the WP function does or returns. This is up to you. If the function does not exist, an empty string will be returned.

Examples ​

Here are some examples to demonstrate the flexibility of the wp.* function.

wp.get_userdata ​

This example uses the WordPress function get_userdata to retrieve the user data based on the Products placeholder {{ repo_author_id }} which contains the author ID of the product author.

twig
{{ wp.get_userdata( repo_author_id ) }}

To work with the user data you can assign the result to a variable and then access the array keys using the dot separator.

twig
{% set user_data = wp.get_userdata( repo_author_id ) %}
{{ user_data.first_name }}
{{ user_data.last_name }}
{{ user_data.user_login }}
{{ user_data.user_url }}

For more inforamtion about get_userdatavisit theget_userdata codex page.

wp.get_post ​

This example uses the WordPress function get_post to retrieve the data of a post. The post ID comes from a Products custom field (see Product Custom Fields) called "related_post".

twig
{% set post_data = wp.get_post( repo_custom_field_related_post ) %}
<h1>{{ post_data.title }}</h1>

For more inforamtion about get_postvisit theget_post codex page.

cycle ​

The cycle function cycles on an array of values:

twig
{% set start_year = date() | date('Y') %}
{% set end_year = start_year + 5 %}

{% for year in start_year..end_year %}
    {{ cycle(['odd', 'even'], loop.index0) }}
{% endfor %}

The array can contain any number of values:

twig
{% set fruits = ['apple', 'orange', 'citrus'] %}

{% for i in 0..10 %}
    {{ cycle(fruits, i) }}
{% endfor %}

date ​

The datefunction converts an argument to a date to allow date comparison. The argument must be in one of PHP’s supporteddate and time formats.

twig
{% if date(RequestTimestamp) < date('-2days') %}
    <p>Product data is more than 2 days old.</p>
{% endif %}

You can pass a timezone as the second argument:

twig
{% if date(RequestTimestamp) < date('-2days', 'Europe/Paris') %}
    <p>Product data is more than 2 days old.</p>
{% endif %}

If no argument is passed, the function returns the current date.

max ​

The function max returns the biggest value of a sequence or a set of values.

twig
{{ max(1, 3, 2) }}
{{ max([1, 3, 2]) }}

When called with a mapping, max ignores keys and only compares values:

twig
{{ max({2: "e", 1: "a", 3: "b", 5: "d", 4: "c"}) }}
{# returns "e" #}

min ​

The function min returns the lowest value of a sequence or a set of values.

twig
{{ min(1, 3, 2) }}
{{ min([1, 3, 2]) }}

When called with a mapping, min ignores keys and only compares values:

twig
{{ min({2: "e", 3: "a", 1: "b", 5: "d", 4: "c"}) }}
{# returns "a" #}

random ​

The random function returns a random value depending on the supplied parameter type.

  • a random item from a sequence;
  • a random character from a string;
  • a random integer between 0 and the integer parameter (inclusive).
twig
{{ random(['apple', 'orange', 'citrus']) }} {# example output: orange #}
{{ random('ABC') }}                         {# example output: C #}
{{ random() }}                              {# example output: 15386094 (works as the native PHP mt_rand function) #}
{{ random(5) }}                             {# example output: 3 #}

range ​

With range you define a custom range for a loop. It returns a list containing an arithmetic progression of integers.

The range function works as the native PHP range function.

twig
{% for i in range(0, 3) %}
    {{ i }},
{% endfor %}

{# outputs 0, 1, 2, 3, #}

When step is given (as the third parameter), it specifies the increment (or decrement):

twig
{% for i in range(0, 6, 2) %}
    {{ i }},
{% endfor %}

{# outputs 0, 2, 4, 6, #}

ASA2 - The Amazon Affiliate Plugin for WordPress