=== Mevabi Daily Image Block - One Day, One Image ===
Contributors: mevabien22
Tags: daily image, image shortcode, Gutenberg image block, random image, image of the day
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A daily image plugin with shortcode + Gutenberg block and anti-cache REST hydration for fresh day-based output.

== Description ==

Mevabi Daily Image Block lets you schedule one image per day with an optional title and description.

Features:

* Custom Post Type for daily image entries.
* Date, image, title and description per entry.
* Fallback to latest available previous day if today is missing.
* Optional global random mode.
* Optional random fallback mode when no eligible day exists.
* `[odoi_daily_image]` shortcode.
* Native dynamic Gutenberg block.
* REST-powered anti-cache hydration for page cache/CDN scenarios.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`.
2. Activate the plugin through the "Plugins" menu in WordPress.
3. Go to **Daily Images** and create entries.
4. Use `[odoi_daily_image]` or insert the **One Day One Image** block.

== Frequently Asked Questions ==

= Does this plugin require WP-Cron? =

No. The plugin calculates the current image at request time using WordPress timezone settings.

= How does cache busting work with cache/CDN plugins? =

The server still renders a fallback image in PHP, but frontend JavaScript fetches the current image from a no-store REST endpoint and replaces the markup. This keeps the image fresh even when page HTML is cached.

= What if JavaScript is disabled? =

The PHP-rendered output is shown. It is accurate when generated, but may still be affected by full-page cache plugins.

== Screenshots ==

1. Accessing the plugin from the WordPress sidebar menu and adding a new image.
2. Setting the date and information for the new image.
3. Newly published image.
4. Multiple images scheduled for different dates.
5. Global settings, colors, and text size options.
6. Adding the new widget to the blog. It can also be added using a shortcode.
7. Preview of the block added to the blog sidebar.



== Changelog ==

= 1.0.0 =
* Initial release.
