Title: Calendora Banners
Author: goldenpixel
Published: <strong>September 20, 2026</strong>
Last modified: September 20, 2026

---

Search plugins

![](https://ps.w.org/calendora-banners/assets/banner-772x250.png?rev=3704347)

![](https://ps.w.org/calendora-banners/assets/icon-256x256.png?rev=3704347)

# Calendora Banners

 By [goldenpixel](https://profiles.wordpress.org/goldenpixel/)

[Download](https://downloads.wordpress.org/plugin/calendora-banners.1.6.4.zip)

 * [Details](https://wordpress.org/plugins/calendora-banners/#description)
 * [Reviews](https://wordpress.org/plugins/calendora-banners/#reviews)
 *  [Installation](https://wordpress.org/plugins/calendora-banners/#installation)
 * [Development](https://wordpress.org/plugins/calendora-banners/#developers)

 [Support](https://wordpress.org/support/plugin/calendora-banners/)

## Description

Calendora Banners manages promotional banners on a schedule, so you do not have 
to edit the homepage before every occasion.

You set a campaign once: the content, the images, the buttons and the dates. The
plugin decides what is on air. A Valentine’s Day banner can start fourteen days 
before the date and stop on the day itself. When nothing seasonal is running, an
evergreen campaign takes the slot instead.

Seasonal and evergreen campaigns never mix. A seasonal campaign always wins; evergreen
ones are the fallback for the quiet days between them. When several seasonal campaigns
overlap, they rotate in a slider.

The plugin makes no external requests. It sets no cookies, collects no statistics
and sends nothing anywhere. The name-day calendar and the font are bundled with 
the plugin and read locally.

#### How it works

 * Add a campaign and choose whether it recurs every year on a fixed date, or runs
   once between two dates.
 * Set how many days before the event it should start, and how many days after it
   should stop.
 * Add desktop and mobile images, up to two call-to-action buttons, and the text.
 * Place the banner with the `[caleba_banners]` shortcode, or drop the Calendora
   Banners widget into an Elementor layout.

### Features

 * Recurring yearly campaigns with a lead time and a run-on period.
 * One-off campaigns that run between two dates.
 * Evergreen campaigns as an automatic fallback, in an order you control by drag
   and drop.
 * A slider when several campaigns are active at the same time, with swipe support
   on touch devices.
 * Separate desktop and mobile images, with a crop anchor for each.
 * Up to two call-to-action buttons per campaign.
 * A small formatting toolbar for the headline and description: bold, italic, underline
   and line breaks.
 * Per-campaign typography: sizes, weights, colours and content alignment.
 * A local 366-day Polish name-day calendar with per-day overrides and no external
   API.
 * Name-day shortcodes you can use anywhere: `[caleba_today_names]`, `[caleba_tomorrow_names]`,`[
   caleba_day_plus_2_names]`, `[caleba_day_plus_3_names]`.
 * A test mode that simulates another date, so you can check a schedule without 
   changing the server clock. It applies only to the logged-in administrator who
   enabled it.
 * Neutral, theme-independent slider navigation, with an optional setting to let
   your theme style it instead.
 * White-label: your own name, logo and accent colour in the admin panel.
 * Import campaigns from a JSON file, and download the bundled starter file as a
   starting point. The plugin does not export your existing campaigns.
 * An admin panel built on a documented design-token system, with a self-hosted 
   font and no external CDN.

### Third-party software and data

 * Geist Sans variable font, from the vercel/geist-font project, under the SIL Open
   Font License 1.1. The font is bundled and served from the plugin directory; no
   external font CDN is used.
 * Polish name-day dataset, derived from the Poland list in the milan-fabian/name-
   day-list project, under the GNU GPL v3.0. The data is bundled locally so the 
   plugin needs no external API.

Full notices, including licence texts and attribution, are in THIRD-PARTY-NOTICES.
txt inside the plugin directory.

## Screenshots

[⌊The dashboard, showing what is on air right now and what comes next.⌉⌊The dashboard,
showing what is on air right now and what comes next.⌉[

The dashboard, showing what is on air right now and what comes next.

[⌊The campaign editor with content, schedule, images and per-campaign typography.⌉⌊
The campaign editor with content, schedule, images and per-campaign typography.⌉[

The campaign editor with content, schedule, images and per-campaign typography.

[⌊The campaign calendar for the coming weeks.⌉⌊The campaign calendar for the coming
weeks.⌉[

The campaign calendar for the coming weeks.

[⌊The name-day calendar with per-day overrides.⌉⌊The name-day calendar with per-
day overrides.⌉[

The name-day calendar with per-day overrides.

[⌊The evergreen screen with drag-and-drop ordering and on-air indicators.⌉⌊The evergreen
screen with drag-and-drop ordering and on-air indicators.⌉[

The evergreen screen with drag-and-drop ordering and on-air indicators.

[[

## Installation

 1. Upload the plugin and activate it.
 2. Open Calendora Banners in the WordPress admin menu.
 3. Review the starter campaigns that were created for you, and edit the ones you want
    to keep.
 4. Add your own images and button links.
 5. Place `[caleba_banners]` on a page, or add the Calendora Banners widget in Elementor.

## FAQ

### Do I need Elementor?

No. Elementor is optional. The shortcode works on its own, and the plugin does not
fail if Elementor is absent. If Elementor is installed, an extra widget becomes 
available with its own layout and styling controls.

### Does the plugin send any data anywhere?

No. It makes no external HTTP requests, loads no external fonts or scripts, sets
no cookies and collects no analytics. The name-day data and the font are bundled
with the plugin.

### What happens when two campaigns overlap?

They rotate in a slider. You set the maximum number of banners shown at once in 
the settings.

### Why does my evergreen campaign not appear?

Because a seasonal campaign is running. Evergreen campaigns are a fallback for the
days when nothing seasonal is scheduled; they never appear alongside a seasonal 
campaign. You can also switch the fallback off entirely in the settings.

### Can I use the name-day calendar without the banners?

Yes. The four name-day shortcodes return just the names, with no markup, so you 
can place them in any page, post or text widget.

### Will uninstalling delete my campaigns?

Not unless you ask it to. By default the plugin keeps your data when you delete 
it. There is a setting, “Delete all plugin data on uninstall”, which you have to
switch on yourself if you want a clean removal.

### Is the plugin translated?

The interface is in English and ships with a Polish translation. The name-day calendar
itself is Polish data.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Calendora Banners” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ goldenpixel ](https://profiles.wordpress.org/goldenpixel/)

“Calendora Banners” has been translated into 1 locale. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/calendora-banners/contributors)
for their contributions.

[Translate “Calendora Banners” into your language.](https://translate.wordpress.org/projects/wp-plugins/calendora-banners)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/calendora-banners/),
check out the [SVN repository](https://plugins.svn.wordpress.org/calendora-banners/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/calendora-banners/)
by [RSS](https://plugins.trac.wordpress.org/log/calendora-banners/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.6.4

 * Improved WordPress.org coding standards compliance.
 * Added consistent plugin-specific prefixes for public identifiers and stored data.
   Existing campaigns, settings, name-day overrides, test mode and evergreen order
   are migrated automatically on the first admin page load after the update.
 * Shortcodes are renamed and the old names no longer work. The banner shortcode
   is now [caleba_banners], and the name-day shortcodes are [caleba_today_names],[
   caleba_tomorrow_names], [caleba_day_plus_2_names] and [caleba_day_plus_3_names].
   Update any page that used the previous names.
 * Hardened output escaping throughout the admin interface.
 * Removed redundant manual translation loading.
 * Updated the public package to rely on WordPress.org translation delivery.
 * Corrected the feature list: the plugin imports campaigns from JSON and lets you
   download the bundled starter file, but it does not export existing campaigns.
 * Preserved existing campaign scheduling, slider, name-day, Test Mode and Elementor
   behaviour.

#### 1.6.3

 * Fixed: when a toggle switch was turned on, the knob jumped three pixels upwards
   and stuck out above the switch, so the control looked misaligned. Off state was
   fine. The cause was a rule in WordPress core’s own admin stylesheet that the 
   plugin was not overriding in the checked state.
 * Fixed: the knob also stopped a few pixels short of the right edge when switched
   on. It now travels the full distance.
 * Added a browser-based test that measures the switch geometry in both states, 
   so this cannot come back unnoticed.

#### 1.6.2

 * Fixed: turning on “Use theme colors for navigation” still showed the arrows in
   the plugin’s own colours. The theme mode now declares no colours at all, so your
   theme’s button styling finally applies.
 * Fixed: the slider dots kept hard-coded colours in both modes. They now follow
   the selected mode like the arrows and the pause control.
 * Fixed: vertical alignment of the toggle switches in settings rows, this time 
   without depending on a container property a more specific rule can override.
 * Fixed: added breathing room between the “Save settings” button and the Test mode
   section below it.
 * Neutral mode, mobile behaviour, keyboard access, ARIA labels and reduced-motion
   handling are unchanged.

#### 1.6.1

 * Fixed: slider arrows and the pause control picked up colours from the active 
   site theme. Theme button rules are more specific than the plugin’s own, and the
   admin preview has no theme stylesheet, which is why the preview looked right 
   and the front end did not.
 * Navigation now has its own neutral styling, scoped to the banner so a theme cannot
   override it.
 * Added a setting, “Use theme colors for navigation”, off by default, for people
   who want the theme to style the arrows and pause control.
 * Fixed spacing of the save button in Test Mode and on the Name days screen.
 * Fixed vertical alignment of the toggle switches in settings rows.
 * Mobile behaviour, keyboard access, ARIA labels and reduced-motion handling are
   unchanged.

#### 1.6.0

 * Renamed the product to Calendora Banners. The technical prefixes, the post type
   and the `[smart_campaigns]` shortcode are unchanged, so existing pages keep working.
 * Security: call-to-action links are now escaped as URLs, so schemes such as `javascript:`
   or `data:text/html` can no longer reach the front end. Previously they were escaped
   only as attributes.
 * Security: imported JSON is validated much more strictly. Event dates must exist
   in the calendar, one-off campaigns need a real date window, and link schemes 
   are checked. Uploaded files are verified as genuine HTTP uploads.
 * Security: image addresses are encoded for the CSS context, so they cannot break
   out of `url()` and inject their own declarations.
 * Security: request data is unslashed correctly. Brand names and name-day overrides
   containing an apostrophe no longer accumulate backslashes on each save.
 * Security: campaign actions verify the post type first, so a plugin action can
   no longer delete or overwrite an unrelated WordPress post.
 * Security: data migrations now require the `manage_options` capability.
 * Removed all content specific to the original client. The starter campaigns are
   now neutral commercial examples.
 * The interface is fully internationalised, with English source strings and a Polish
   translation.
 * Accessibility: the carousel can be paused, stops on focus and on touch, and does
   not auto-advance for visitors who ask for reduced motion.
 * Accessibility: inactive slides are hidden from screen readers, and the carousel
   exposes a proper region role.
 * Settings: a new “Delete all plugin data on uninstall” option, off by default,
   so removing the plugin keeps your campaigns unless you say otherwise.
 * Added `LICENSE`, plugin metadata required by the plugin directory, and a WordPress.
   org readiness contract to the test suite.
 * Fixed a defect in the test runner that reported some failing contracts as passing.

#### 1.5.5

 * Fixed: bold text in the banner headline picked up an uncontrolled weight of 900
   and switched to a different cut of the typeface.
 * Bold weights are now explicit: 800 in the headline, 700 in the description.
 * Bold, italic and underline each change one property only; the typeface, size 
   and letter spacing stay as they were.
 * Unformatted content looks exactly as before.

#### 1.5.4

 * A small formatting toolbar above the headline and description: bold, italic, 
   underline and line break.
 * The headline is a multi-line field, and Enter inserts a real line break.
 * Only `strong`, `em`, `u` and line breaks are allowed; every other tag is stripped.
 * Content is filtered on save and again on render, so older records are safe too.
 * No TinyMCE and no full WYSIWYG editor.
 * The dashboard counts what is on air using the same helper as the front end.
 * Fixed: content containing an ampersand came back into the editor correctly.

#### 1.5.3

 * Drag-and-drop ordering for evergreen campaigns, with a handle on each card.
 * The order is saved without reloading the page, with a confirmation message.
 * Move up and move down buttons for keyboard use; they work without JavaScript 
   too.
 * An on-air marker on the campaigns that are actually being shown, with their slot
   number.

#### 1.5.2

 * Four global name-day shortcodes that return just the names, with no markup.
 * The shortcodes use the same calendar and the same tokens as the banners, and 
   respect test mode.

#### 1.5.1

 * Banner polish: a lighter name-day footer, smaller desktop arrows that appear 
   on hover and focus, and mobile content moved higher.

#### 1.5.0

 * Test mode with a simulated date and an optional forced campaign, stored per administrator.
 * Dynamic name-day tokens for tomorrow and the next two days.
 * Per-campaign typography and image positioning, with inline validation in the 
   editor.
 * The admin stylesheet was split into ten modules with no visual change.

#### 1.4.0

 * Rebuilt admin foundation and dashboard on a documented design-token system.
 * Self-hosted Geist variable font, no external font CDN.

## Meta

 *  Version **1.6.4**
 *  Last updated **3 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.0 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/calendora-banners/) and [Polish](https://pl.wordpress.org/plugins/calendora-banners/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/calendora-banners)
 * Tags
 * [banners](https://wordpress.org/plugins/tags/banners/)[campaigns](https://wordpress.org/plugins/tags/campaigns/)
   [elementor](https://wordpress.org/plugins/tags/elementor/)[scheduler](https://wordpress.org/plugins/tags/scheduler/)
   [seasonal](https://wordpress.org/plugins/tags/seasonal/)
 *  [Advanced View](https://wordpress.org/plugins/calendora-banners/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/calendora-banners/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/calendora-banners/reviews/)

## Contributors

 *   [ goldenpixel ](https://profiles.wordpress.org/goldenpixel/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/calendora-banners/)