Time Since | FacetWP

1644759112 Time Since Facetwp
  • Description
  • FAQ
  • Screenshots
  • DEMO
  • Updates & Support

The Time Since facet is used to filter posts by date / time since a specified interval.

Setup

  • Data Source: A date; “Post Date”, “Post Modified”, or a custom field in YYYY-MM-DD format
  • Choices: the choices to display (one per line). The label and formatter are separated by “|”. Example:
Past Day | -1 day
Past 7 Days | -7 days
Past 30 Days | -30 days
Past 90 Days | -90 days
Past Year | -1 year
Next 7 Days | +7 days
Today | today
Tomorrow | tomorrow
Yesterday | yesterday

The formatter is based on PHP’s strtotime function (see example).

Using custom ranges

Let’s say you wanted to add a choice to filter by Older than 1 year.

First, add a new row into the “Choices” box:

Older than 1 year | over-1-year

As you can see over-1-year is the custom formatting token. Since PHP won’t know how to automatically parse it, a hook is needed to set the date range manually:

add_filter( 'facetwp_time_since_date_range', function( $range, $format ) {
    if ( 'over-1-year' == $format ) {
        $dt1 = new DateTime( '1970-01-01' );
        $dt2 = new DateTime( '-1 year' );

        $range['lower'] = $dt1->format( 'Y-m-d' );
        $range['upper'] = $dt2->format( 'Y-m-d' );
    }
 
    return $range;
}, 10, 2);

Changelog

1.6.5

  • New ability to use custom format ranges (see the doc page)
  • Fixed default to “OR” mode for all Time Since choices

1.6.4

  • Fixed user selections feature was empty
  • Fixed use JS versioning to bust caching

1.6.3

  • Fixed filtering broken when labels are translated using `facetwp_i18n` hook

1.6.2

  • Improved changed textdomain to `facetwp-time-since`
  • Fixed choice labels can now be translated via the `facetwp_i18n` hook
  • Fixed undefined $token variable (props Rhys)

1.6

  • New revamped filtering logic to support “today”, “tomorrow”, and “yesterday”

1.5.1

  • Changed replaced `wp.hooks` to `FWP.hooks` due to conflict with WP 5.0
or
Shopping Cart
  • Your cart is empty.
Scroll to Top