| 开发者 | merkucio |
|---|---|
| 更新时间 | 2026年11月1日 01:40 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
herodotus folder to the /wp-content/plugins/ directory.[herodotus] or the Herodotus Events Gutenberg block on any page or widget area.Herodotus is designed for creating "On This Day in History" sections on your website. You create posts tied to a specific day and month, and they automatically appear every year on that date. It is ideal for history blogs, music, art & educational sites, museum websites, anniversary trackers, and birthday calendars.
No. Herodotus uses its own dedicated Custom Post Type (herodotus_post). Your standard WordPress Posts, Pages, and any other content remain completely untouched.
Regular WordPress posts are tied to the date they were published and appear in chronological order. Herodotus posts are tied to a recurring day and month - they have no "publication date" in the traditional sense and will appear automatically every year on the same day.
Yes. You can set February 29th as the date. On non-leap years, this post will not be shown, which is the correct and expected behavior.
Use the shortcode [herodotus] in any post, page or text widget. Alternatively, use the included Herodotus Events Gutenberg block which you can find in the block inserter.
Yes. Use the category attribute with the category slug: [herodotus category="science"]. You can create and manage categories under Herodotus → Categories.
The compact layout ([herodotus layout="compact"]) shows posts with a small square thumbnail, title and a short excerpt - without the category label or Read more button. It is designed specifically for sidebar widgets where space is limited.
Yes, in two ways. [herodotus show_image="false"] hides all images including the default placeholder, but keeps the card styling - background, border and rounded corners. [herodotus layout="text"] goes further: no images and no card chrome either, just a plain list of events separated by thin lines. Use the first when you want cards without pictures, the second when you want the events to blend into your page text.
By default, a placeholder "No Image" graphic is shown. You can replace this placeholder with any image of your choice by going to Herodotus - On This Day → Settings and uploading a custom Default Image.
[herodotus_random] shows a random pick out of the events for the current day. Where [herodotus] lists all of them, this one highlights a single event - useful for a sidebar block or a spot where only one item fits. Use limit for more than one, for example [herodotus_random limit="3"]. It accepts the same category, layout, excerpt_words and show_image attributes as the main shortcode. A new pick is made on every page load; if you use a full-page caching plugin, the pick will stay the same until that page cache expires.
Add show_rss="true" to [herodotus] or [herodotus_random], or enable Show RSS subscription in the Gutenberg block's Display Settings, to display a compact RSS menu beside its heading. Visitors can choose a category, copy its subscription link or open the feed. The menu is off by default and works with all layouts. Enable RSS Subscription under Settings -> General to show it by default. An explicit show_rss="false" or a block setting overrides the global option.
Yes. The RSS2 feed is available at /herodotus/feed/, for example https://example.com/herodotus/feed/. Each item contains the title, Featured Image when present, a short teaser and the original event link. Categories and tags are supplied as standard RSS metadata; their display depends on the reader. The teaser does not repeat the date or taxonomy labels. The standard item link opens the original event; there is no extra Read more link in the teaser. Image display depends on the reader.
The default is today's events in the WordPress site timezone, independently of Pro's Around today or Upcoming Days settings. Add hd_category=sport or hd_tag=rugby to subscribe to a single category or tag. The two filters can be combined and match their intersection. Add hd_days=7 for the last seven calendar days including today, or hd_days=30 for thirty days. The supported range is 1 to 31 days. The window uses the recurring event date, rather than when the post was published. Newest occurrences come first, including across New Year. The subscription's own URL is preserved in the feed.
Posts Limit caps the total number of events in the feed, including multi-day windows. Teasers follow Excerpt Length up to a maximum of 20 words. A short body is shortened further instead of being published in full; a manually written excerpt is treated as the author's teaser. Only public, published events without a password are included. Days or filters without events return a valid empty feed. Invalid period/filter types return HTTP 400 without falling back to an unrestricted feed. An occurrence keeps the same dated identifier and publication date in the daily and multi-day feeds, so it does not become new each time the rolling window refreshes. It receives a new identifier next year. Conditional HTTP caching refreshes at local midnight; external page caches or CDNs that override cache headers should exclude this feed or expire it by midnight. No scheduled task is required.
Yes. Each shortcode instance is independent and can have its own layout, category, limit and other settings.
Herodotus uses WordPress transients to cache query results. The default cache lifetime is 3600 seconds (1 hour). You can adjust this under Herodotus - On This Day → Settings → Advanced, or set it to 0 to disable caching entirely. The same screen has a Clear Cache Now button. The cache is automatically cleared whenever a Herodotus post is saved or deleted.
Yes. The plugin includes a wpml-config.xml file which automatically configures WPML to handle the custom post type, taxonomy and date meta fields correctly. Polylang works automatically as well since the CPT and taxonomy are registered with standard WordPress hooks. The cache key includes the current locale so different language versions are cached separately.
Yes. The plugin is fully internationalized. Translations are included for: Georgian (ka_GE), Russian (ru_RU), Ukrainian (uk), French (fr_FR), German (de_DE), Spanish (es_ES), Italian (it_IT) and Turkish (tr_TR). Additional translations can be contributed via the WordPress.org translation system (GlotPress).
The red warning appears when a Herodotus post does not have a day, month or year set. All three fields are required - posts without a complete date will never appear on the frontend. Simply click the date field in the Herodotus Date metabox (right sidebar) to set the date.
The âš icon in the Herodotus Date or Year column means that post is missing date information and will not be shown on the frontend until the date is set.
Yes. Hover a row in the events list and click Quick Edit - the day, month, year and era appear next to the standard WordPress fields, already filled with the current values. This is the fastest way to correct dates when entering many events. Bulk Edit intentionally leaves the dates untouched, since a single date for several events is almost never what you want.
Yes. Under Herodotus - On This Day → Settings → General you can choose between A → Z (alphabetical) and Z → A (reverse alphabetical) sorting. Events are always grouped by date first, then sorted by your chosen order.
The plugin stores Herodotus posts (as a custom post type), categories (as a custom taxonomy), plugin settings (in wp_options) and temporary cache (as transients). By default, all data is kept when the plugin is uninstalled. If you want all data to be permanently deleted on uninstall, enable the Remove Data on Uninstall option under Herodotus - On This Day → Settings → Advanced.
Yes. Herodotus automatically adds Open Graph and Twitter Card meta tags on single event pages and category archive pages, enabling rich previews when sharing links on Facebook, Twitter/X, Telegram and other platforms. It also outputs JSON-LD Schema.org structured data (Article, Event, CollectionPage) to help search engines understand your content. If Yoast SEO, RankMath, AIOSEO or The SEO Framework is active, Herodotus automatically skips its own tags to avoid duplicates.
The shortcode [herodotus] works in any environment that supports standard WordPress shortcodes, including Elementor text/shortcode widgets, Divi Code modules and Beaver Builder HTML modules.
Yes. Herodotus has its own internal caching layer. It works alongside page-level caching plugins without conflict. Note that if you use aggressive full-page caching, the displayed date may be cached at the page level - consider excluding the pages with [herodotus] from full-page caching, or using a shorter cache TTL.
show_rss="true" or the block's Show RSS subscription toggle. Visitors can choose a category and copy or open its daily feed. A global RSS Subscription checkbox in General settings controls the default for all event displays; explicit shortcode and block settings take priority. Existing displays remain unchanged by default.hd_category, hd_tag and hd_days. Newest occurrences come first across month/year boundaries; occurrence identifiers remain stable across subscription types.meta in authenticated REST API requests with context=edit, for users who can edit the event. Invalid field values are rejected.herodotus_admin_tabs filter, and fill it through herodotus_admin_tab_{id}.herodotus_admin_saveable_tabs decides which tabs show the Save Changes button.[herodotus_random] highlights a random pick out of today's events. Accepts limit, category, layout, excerpt_words and show_image.[herodotus layout="text"] renders a plain list with no images and no card styling./herodotus/feed/ now delivers the events of the current day instead of the most recently published ones.herodotus_post) and Custom Taxonomy (herodotus_category).[herodotus] with attributes: layout, limit, category, excerpt_words, show_image, order.list (standard page layout) and compact (sidebar/widget layout).wpml-config.xml.