Timed Content

توسط

The Timed Content plugin allows users to specify that a portion of a Page or Post should appear/be visible or disappear/be invisible based on given time characteristics. You can also make portions of a Post or Page be visible at certain dates and times; you can even set up a schedule!

The plugin adds the following:

  • A “client-side” shortcode that allows the marking of content to appear or disappear after a given time interval; a “fade” effect is included. This functionality is intended to be used for special effects only, as content marked in this manner is still visible in the HTML source and, therefore, not a secure method of hiding content.
  • Two “server-side” shortcodes that allow the marking of content to be visible only during specified date/time intervals. This functionality can be used as a secure method of hiding content, because the marked content will be included in the Page/Post only when viewed in the specified date/time intervals.

A TinyMCE dialog is included to help users build the shortcodes. See the Screenshots tab for more info.

Examples

[timed-content-client show="1:00"]Show me after one minute.  Since we don't want a fade-in, we can leave it out of the "show" attribute completely.[/timed-content-client]

[timed-content-client show="1:00:1000"]Show me after one minute with a 1000 millisecond (1 second) fade-in.[/timed-content-client]

[timed-content-client hide="1:00:1000"]Hide me after one minute with a 1000 millisecond (1 second) fade-out.[/timed-content-client]

[timed-content-client show="1:00:500" hide="5:00:2000"]Show me after one minute with a 500 millisecond (a half-second) fade-in, then hide me after five minutes with a 2000 millisecond (2 seconds) fade-out.[/timed-content-client]

[timed-content-server show="2013-09-13 20:30:00 -0600"]Show me starting at 8:30 PM Central Standard Time on September 13th, 2013. I will not be displayed before then.[/timed-content-server]

[timed-content-server hide="2013-09-13 20:30:00 America/Chicago"]Hide me starting at 8:30 PM Central Daylight Time (i.e., the same timezone as Chicago) on September 13th, 2013.  I will not be displayed after then[/timed-content-server]

[timed-content-server show="2013-09-13 20:30:00 -0600" hide="2013-09-13 21:30:00 -0600"]Show me starting at 8:30 PM Central Standard Time on September 13th, 2013, then hide me an hour later. I will not be displayed before or after then.[/timed-content-server]

[timed-content-rule id="164"]Display me based on the settings for the Timed Content Rule whoseID is 164.[/timed-content-rule]<h3>Usage</h3>

NOTE: All shortcodes can be built using the TinyMCE dialog. When in doubt, use the dialog to create correctly formed shortcodes.

The timed-content-client shortcode

[timed-content-client show="mm:ss:fff" hide="mm:ss:fff"]Example Text[/timed-content-client]
  • show – Specifies the time interval after loading the web page when the marked content should be displayed. The attribute consists of three parts,
    separated by colons: mm – minutes, ss – seconds, and fff – if greater than 0, a fade-in effect lasting fff milliseconds is applied.
  • hide – Specifies the time interval after loading the web page when the marked content should be hidden. The attribute consists of three parts,
    separated by colons: mm – minutes, ss – seconds, and fff – if greater than 0, a fade-out effect lasting fff milliseconds is applied.

Both attributes are optional, but at least one attribute must be included. Leading zeros (0) are optional. The shortcode’s behaviour depends on which attributes are used:

  • show only – Marked content is initially not visible, then appears mm minutes and ss seconds after loading with a fff millisecond fade-in.
  • hide only – Marked content is initially visible, then disappears mm minutes and ss seconds after loading with a fff millisecond fade-out.
  • show and hide – Marked content is initially not visible, then appears according to the values set in show, then disappears according to the values set in hide.

Your users must have JavaScript enabled for this shortcode to work.

The timed-content-server shortcode

[timed-content-server show="datetime" hide="datetime" debug="true|false|when_hidden"]Example Text[/timed-content-server]
  • show – Specifies the date/time when the marked content should start being included on the web page.
  • hide – Specifies the date/time after which the marked content should stop being included on the web page.
  • debug – If true, adds some debugging statements to the web page as HTML comments. If when_hidden, the debugging statements are added only when the content is hidden. Defaults to false.

The date and time are expected to be yyyy-mm-dd HH:MM (similar to ISO 8601), for example 2019-04-07 15:30 for April 7, 2019, 15:30. For backward compatiblity old “human readable” date formats should also work, but these should not be used any longer!

In addition you can provide a timezone in the date/time parameter either as name or as offset like 2019-04-07 15:30 America/Chicago or 2019-04-07 15:30 +0200. If you do not provide a timezone, the WordPress timezone setting will be used as default.

Both show and hide attributes are optional, but at least one attribute must be included. The shortcode’s behaviour depends on which attributes are used:

  • show only – Marked content is outputted only after the date/time set here.
  • hide only – Marked content is outputted only before the date/time set here.
  • show and hide – Marked content is outputted only during the time period defined by the show and hide attributes.

The timed-content-rule shortcode

[timed-content-rule id="{rule_id}|{rule_name}"]Example Text[/timed-content-rule]

You can find the correct shortcode from the Timed Content Rules overview page, or use the TinyMCE dialog.

Testing server side rules

For testing the behaviour of server side rules at specific times, you may use the GET parameter tctest in an URL, followed by date and time in the format YYYY-MM-DD+hh:mm:ss. This works only you are logged in with a user which has the right to edit the displayed page or post. For example: http://mysite.example?tctest=2018-02-10+19:16:00 will show the content as if it was February 10, 2018 at 19:16.

Developer Documentation

Action hooks

add_action( "timed_content_server_show", "{function_name}", {priority_level}, 4 );

Fired when the [timed-content-server] shortcode is encountered AND the content is to be displayed based on the shortcode’s show/hide attributes. Functions using this hook should accept the following arguments in order:

  • $post_id – the ID of the currently displayed Post/Page
  • $show – the value of the show attribute. If not set, defaults to “1970-Jan-01 00:00:00 +000”
  • $hide – the value of the hide attribute. If not set, defaults to “2038-Jan-19 03:14:07 +000”
  • $content – The content enclosed by the shortcode

    add_action( “timed_content_server_hide”, “{function_name}”, {priority_level}, 4 );

Fired when the [timed-content-server] shortcode is encountered AND the content is to be hidden based on the shortcode’s show/hide attributes. Functions using this hook should accept the following arguments in order:

  • $post_id – the ID of the currently displayed Post/Page
  • $show – the value of the show attribute. If not set, defaults to “1970-Jan-01 00:00:00 +000”
  • $hide – the value of the hide attribute. If not set, defaults to “2038-Jan-19 03:14:07 +000”
  • $content – The content enclosed by the shortcode

    add_action( “timed_content_rule_show”, “{function_name}”, {priority_level}, 3 );

Fired when the [timed-content-rule] shortcode is encountered AND the content is to be displayed based on the Timed Content Rule’s properties. Functions using this hook should accept the following arguments in order:

  • $post_id – the ID of the currently displayed Post/Page
  • $rule_id – the ID of the Timed Content Rule being called. Use get_post_meta( $rule_id ) to get the Rule’s properties.
  • $content – The content enclosed by the shortcode

    add_action( “timed_content_rule_hide”, “{function_name}”, {priority_level}, 3 );

Fired when the [timed-content-rule] shortcode is encountered AND the content is to be hidden based on the Timed Content Rule’s properties. Functions using this hook should accept the following arguments in order:

  • $post_id – the ID of the currently displayed Post/Page
  • $rule_id – the ID of the Timed Content Rule being called. Use get_post_meta( $rule_id ) to get the Rule’s properties.
  • $content – The content enclosed by the shortcode

Filter hooks

timed_content_filter

Filter for any content enclosed by a Timed Content shortcode. Implements the same filters as the_content:

  • wptexturize
  • convert_smilies
  • convert_chars
  • wpautop
  • prepend_attachment
  • do_shortcode

    timed_content_filter_override

Replaces the timed_content_filter with another pre-existing filter to use for any content enclosed by a Timed Content shortcode. Any function hooked into this filter must return the name of a filter (as a string).

  1. Extract the contents of the package to the /wp-content/plugins/timed-content directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

سوالات متداول

Projected dates/times seem to be fixed to a certain start date – why?

Since it makes no sense to get all values of the past, the projected dates/times will not display all available dates but will limit the start date to the current date minus a certain value depending on the interval.

For hourly intervals: start at current date minus 1 day
For daily intervals: start at current date minus 7 days
For weekly intervals: start at current date minus 21 days
For monthly intervals: start at current date minus 80 days
For yearly intervals: start at current date minus 380 days

Example: you set a rule to start on January 1, 2013 with daily repetetion. To get all the possible dates for that rule until today and a few weeks in the future this would mean to calculate more than ten(!) years or 3650 values until today. But most likely you don’t want to see the dates from 10 years ago but the values how they will be now and some repetitions into the future.

Old rules after updating to version 2.50

In versions prior to 2.50 the date/time format was not handled very well which caused quite some confusion. Therefore version 2.50 now uses a fixed format similar to ISO 8601: yyyy-mm-dd HH:MM

Existing shortcodes and rules containing dates in the format mm/dd/yyyy should still work, but when editing rules the date value is converted to the new format.

To be sure, you should check your existing rules and shortcodes if you upgraded from a version below 2.50.

Using Timed Content in Gutenberg

If you want to use Timed Content with Gutenberg you have to add a “Classic” block. There is no way to show or hide other content blocks with Timed Content.

×
نظری برای این آیتم موجود نیست.
0 0 رای ها
امتیازدهی
اشتراک در
اطلاع از
0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
نسخه حجم فایل SHA256 تغییرات دانلود
2.97 171 کیلوبایت -
دانلود
×
★★★★★
★★★★★
4.6 /5 (41 نظر)

قیمت:

رایگان

نگارش

2.97

آخرین انتشار

11 اردیبهشت 1405

آخرین بروزرسانی

4 ماه پیش

نصب های فعال

6,000+

نگارش وردپرس

وردپرس 3.8+

تست شده از نسخه

وردپرس 6.9.4

نگارش PHP

-

نسخه ها

1 نسخه