Shortcodes showing as plain text in titles
Cause: The dmyip_core_filters filter may be disabling title processing, or another plugin/theme is interfering.
A shortcode not working in WordPress almost always means one of four things: the context isn’t processed, another plugin interferes, caching serves stale output, or the shortcode is misspelled. This lesson works through each with the fastest diagnostic for the date shortcodes specifically.
Fix: Check your theme’s functions.php for any filters modifying dmyip_core_filters. The default behavior enables shortcodes in titles. You can verify by adding this temporarily:
add_filter( 'dmyip_core_filters', function ( $filters ) {
error_log( 'dmyip_core_filters: ' . print_r( $filters, true ) );
return $filters;
} );Shortcodes not working in Elementor
Cause: Elementor integration loads automatically when Elementor is active.
Fix:
- Verify the plugin is active
- Clear Elementor’s cache (Elementor > Tools > Regenerate CSS & Data)
- Check if another plugin is unhooking the
elementor/widget/render_contentfilter
Age shows “0”
Cause: Invalid date format or date in the future.
Fix: Use ISO 8601 format (YYYY-MM-DD):
[age date="1990-05-15"] ✓ Correct
[age date="05/15/1990"] ✗ May not parse correctly
[age date="May 15, 1990"] ✗ Use ISO format
[age date="2090-01-01"] → Returns 0 (future date)[year] with offset shows wrong value
Cause: Versions before 1.7.2 used strtotime() for year offset calculation, which failed with large offsets.
Fix: Update to v1.7.2+. The shortcode now uses pure integer arithmetic:
[year n=-2003] → 23 (was broken in older versions)
[year n=100] → 2126Shortcodes in REST API responses show raw text
Cause: Post content returned by the WordPress REST API runs through the_content, which processes shortcodes. If you see raw shortcodes, the plugin may not be active.
Fix:
- Verify the plugin is active
- For titles: the plugin hooks into
the_title, which the REST API also uses - For custom endpoints: wrap content with
do_shortcode()in your code
Countdown shows “0” instead of negative number
Version-dependent behavior. Since 1.8.0 the [daysuntil] shortcode returns a signed value: once the target date has passed, the count goes negative. Add clamp="true" to floor it at 0, or use [dayssince] for past dates. The Live Countdown block always clamps at 0:
[daysuntil date="2020-01-01"] → negative number (date has passed)
[daysuntil date="2020-01-01" clamp="true"] → 0
[dayssince date="2020-01-01"] → 2399REST API / WP-CLI commands not available
Cause: On versions before 1.8.0, these features required the Composer loading path (vendor/autoload.php). Since 1.8.0 the plugin ships a PSR-4 fallback autoloader, so REST and WP-CLI work even without the vendor/ directory.
Fix: Update to 1.8.0 or newer. On older versions, ensure the plugin was installed with the vendor/ directory included (WordPress.org ZIPs and GitHub releases have it). If cloned from git, run:
composer install --no-dev --optimize-autoloaderShortcodes stripped from excerpts
Cause: WordPress’s strip_shortcodes() function removes shortcodes from auto-generated excerpts.
Fix: The plugin already hooks into strip_shortcodes_tagnames to protect its shortcodes. If this isn’t working:
- Verify no other plugin is overriding
strip_shortcodes_tagnames - Check that
the_excerptfilter is enabled indmyip_core_filters
Season shows wrong value
Cause: Seasons are based on calendar months, not astronomical dates (equinoxes/solstices).
Northern hemisphere:
- Spring: March – May
- Summer: June – August
- Fall: September – November
- Winter: December – February
Southern hemisphere: Use [season region="south"] for reversed seasons.
Performance concerns
The plugin has minimal performance impact:
- Zero database queries for shortcode rendering
- All output generated through one date engine using
wp_date()andDateTimeImmutablein the site timezone (since 1.8.0) - Only asset loaded: small CSS file in Block Editor for shortcode highlighting
- No JavaScript on the frontend (except the Countdown block’s Interactivity API module)
- No settings page, no options table entries, no admin AJAX calls
Block Bindings not working
Requirements:
- WordPress 6.5 or later (also the plugin’s minimum since 1.8.0)
Fix: Verify your WordPress version with wp core version. Block Bindings API was introduced in WP 6.5.
Conflicts with caching plugins

Shortcodes render server-side at page generation time. If a caching plugin serves a stale page, the dates won’t update until the cache is cleared. Since 1.8.0, values flip at midnight in your site timezone (Settings > General), not UTC.
Fix:
- Configure cache expiration to clear daily (or at your desired freshness interval)
- For the Live Countdown block, this isn’t an issue – it updates client-side via the Interactivity API
- For pages with
[daysuntil]or time-sensitive content, consider shorter cache TTLs
Quick answers to common questions:
Why does 2026 show as plain text in my title?
Title processing is disabled via dmyip_core_filters, or a theme builds titles through a custom function that skips the filter. Test with a default theme first; if it renders there, the lesson’s theme-conflict section has the fix.
Dates are stuck on yesterday’s value. Why?
Page caching: the cached HTML froze the rendered value. Date output changes at midnight, so set cache lifetimes under 24 hours or exclude date-sensitive pages. The plugin renders correctly; the cache is replaying history.