Description
Creates a custom post type «Timeline» with date/year meta, categories, and shortcode [timeline] for chronological display. Supports full dates, durations, custom labels, year-only mode. Admin columns sortable by date/year.
Usage
- Full Date: Set start/end, optional custom display.
- Year Only: Large year display.
- Sorted automatically by
_sort_timestamp.
Installation
- Upload plugin folder to
/wp-content/plugins/. - Activate via Plugins menu.
- Add entries under «Timeline» post type.
- Use
[timeline]shortcode in pages/posts.
Attributes: limit (default -1), category (slug), order (ASC/DESC).
Reviews
There are no reviews for this plugin.
Contributors & Developers
“EffortLess Timeline Posts” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “EffortLess Timeline Posts” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.32
- WordPress 7.0 update
1.0.31
- Fix: completed eltlp_ prefix rename — settings page HTML form attributes (id, name, for) and color-picker CSS class were still using etp_ prefix; all updated to eltlp_.
1.0.30
- Security: replaced $_GET[‘post’] in admin_notices() with global $post object — no nonce required for a read-only post ID lookup.
- Fix: renamed CPT to eltlp_timeline, taxonomy to eltlp_timeline_cat, shortcode to [eltlp_timeline], all option/transient keys to eltlp_ prefix, class to ELTLP_Timeline_Posts, constant to ELTLP_VERSION.
1.0.29
- Fix: added inline phpcs:ignore on the constant and class declaration so Plugin Check suppresses PrefixAllGlobals warnings regardless of its prefix configuration.
1.0.28
- Fix: constant renamed to EFFORTLESS_TIMELINE_POSTS_VERSION and class to Effortless_Timeline_Posts to match the slug-derived prefix that Plugin Check enforces.
1.0.27
- Fix: renamed class to EffortLess_TimeLine_Posts; updated phpcs.xml to declare ELTLP_ and EffortLess_TimeLine_Posts_ as valid prefixes.
1.0.26
- Fix: renamed version constant to ELTLP_VERSION and updated phpcs.xml to declare eltlp_/ELTLP_ as the canonical plugin prefix.
1.0.25
- Fix: renamed constant ETP_VERSION EFFORTLESS_TIMELINE_POSTS_VERSION and class EffortLess_Timeline_Posts Effortless_Timeline_Posts to satisfy WordPress.NamingConventions.PrefixAllGlobals.
- Code: added phpcs.xml with explicit prefix configuration so local PHPCS enforces the same rule.
1.0.24
- Code: rewrote timeline-script.js to pass WordPress PHPCS standard (tabs, multi-line call formatting, @package tag, period-terminated inline comments).
1.0.23
- Improvement: «Show Era Boundary» toggle — displays a styled divider line between BC and AD entries on the timeline.
- Improvement: «Era Terminology» radio — choose BC/AD (traditional) or BCE/CE (modern). Applies to year labels and the divider.
1.0.22
- Improvement: Settings > «Show Year Labels» toggle — uncheck to hide the year column and display a compact full-width timeline.
- Improvement: any change to a plugin setting now automatically busts the shortcode transient cache.
1.0.21
- Improvement: year field now accepts BC dates (-9999 to 9999). Enter -2580 for 2580 BC.
- Improvement: BC years display as «2580 BC» on the timeline and in admin columns.
- Fix: negative years were stripped to positive by absint(); now uses intval() to preserve sign.
- Fix: sort timestamp falls back to year × 31 557 600 when strtotime() cannot parse ancient dates.
1.0.20
- Improvement: «Show Today» toggle in Settings — displays a hollow marker at today’s date position, sorted correctly among all entries. Works even with no real entries. Bypasses transient cache while active.
1.0.19
- Fix: entries dated exactly 1970 (Unix epoch, timestamp = 0) were incorrectly filtered out and never displayed.
1.0.18
- Improvement: added Settings page under Timeline menu with shortcode reference (all attributes, defaults, examples) and existing categories with ready-to-use shortcodes.
- Improvement: color pickers on Settings page let admins change the timeline line color and dot color without editing CSS.
1.0.17
- Fix: replace named global function in uninstall.php with call_user_func closure to eliminate global namespace warnings.
1.0.16
- Fix: wrap uninstall logic in a prefixed function to avoid global variable scope warnings.
1.0.15
- Fix: removed load_plugin_textdomain() — WordPress auto-loads translations since 4.6.
- Fix: prefixed global variables in uninstall.php to avoid namespace collisions.
- Fix: added phpcs:ignore for the_content core hook (not a custom hook).
- Fix: updated «Tested up to» to WordPress 6.9.
1.0.14
- Improvement: CSS and JS now load only on pages that use the [timeline] shortcode.
- Improvement: activation and deactivation hooks flush rewrite rules so CPT slugs work immediately.
- Improvement: added uninstall.php to clean up plugin meta keys and transients on deletion.
- Improvement: meta fields registered via register_post_meta() for REST API and block editor access.
- Improvement: shortcode output cached with transients; cache busts automatically on save or delete.
- Improvement: recursion guard prevents infinite loop if [timeline] appears in an entry’s content.
- Improvement: new heading shortcode attribute (h2–h6) for correct document outline control.
- Improvement: timeline wrapper gets role=»region» and aria-label; marker gets aria-hidden; articles get aria-label.
- Improvement: admin notices shown when date/year fields are silently cleared by validation.
- Improvement: featured image (thumbnail) added to CPT supports.
- Improvement: menu_position changed from 5 (conflicts with Posts) to 20.
- Improvement: generated languages/effortless-timeline-posts.pot for translators.
1.0.13
- Security: validate year_only as integer clamped to 1900–2100 (server-side).
- Security: reject full_date/end_date that don’t match YYYY-MM-DD format.
- Fix: format_date() returns empty string instead of «January 1, 1970» for invalid dates.
- Fix: correct phpcs:ignore sniff name on virtual stylesheet handle.
1.0.12
- Fix: allowlist
_date_typevalues to prevent arbitrary meta storage. - Fix: guard
strtotime()return value before writing timestamp/year meta. - Fix: apply category filter before limit so
limitcounts filtered results. - Fix: admin sort direction now respects the URL
orderparameter. - Fix: shortcode output wrapped in
.timeline-dotcomcontainer (CSS max-width was broken). - Fix: prime post meta cache before loop (single DB query instead of N×6).
- Fix: load plugin textdomain so translations work.
- Fix: move meta box inline CSS and JS to properly enqueued handles.
- Fix: use
ETP_VERSIONconstant for asset versioning.
1.0.11
- Code: fix all PHPCS WordPress standard violations (tabs, alignment, short ternary, globals, comment style).
1.0.10
- Initial release.