內容簡介
OXP Events Calendar 是一款專為 WordPress 設計的活動日曆外掛,能夠輕鬆添加活動類型並以視覺化方式展示。用戶可以建立完整的日曆,並透過短碼輕鬆嵌入至頁面中,支援重複事件的管理,讓活動安排更加高效。
【主要功能】
• 支援活動標題、描述、摘錄及特色圖片
• 提供多種顏色編碼的活動類別
• 可設定活動的開始與結束時間
• 支援日曆、議程等多種顯示模式
• 具備 AJAX 月份導航與過濾功能
• 支援重複事件的靈活設定
外掛標籤
開發者團隊
原文外掛簡介
OXP Events Calendar adds an Events post type to WordPress and a visual composer to put it on a page. You build the calendar once, watch it render live at full width while you work, and copy out a shortcode.
Recurring events are stored once and expanded when a month is rendered, so a weekly meetup running for five years is one row in your database, not 260.
The free plan is a working calendar rather than a demo: two calendars, sixty events and six event categories, with everything below included. Venues and organizers are never counted.
Events
Title, WYSIWYG description, excerpt and featured image
Start and end date and time, all-day switch, multi-day spans
Colour-coded categories, reusable venues with a full address, and organizers
Event URL with its own link text and new-tab option
Status: scheduled, cancelled, postponed, moved online or new date. The reason you type stands in for the excerpt, and one button clones a postponed event onto its new date
Recurrence: daily, weekly on chosen weekdays, monthly by date or by weekday position, and yearly, ending on a date or after N occurrences, with dates to skip
Calendars
Three choices drive the output, and the preview updates as you make them.
Mode. Calendar is the classic month grid, Agenda lists events grouped by day. Weekends can be shown, dimmed or dropped for a five-day week.
Theme. Minimal editorial, Soft cards, Compact, or Unstyled, in a light or dark scheme. Unstyled loads no plugin CSS at all and hands you the base stylesheet ready to paste into Appearance → Customize → Additional CSS, already scoped to that one calendar.
Content. Which categories, venues or organizers the calendar draws from, which filters appear, what the details popup shows, and what a click on an event does.
Colour comes from the event categories: set it once and every calendar follows.
Front end
Month navigation and filtering over AJAX, with a real link and a real form underneath so it works with JavaScript off
Filters by month, year, category and keyword, plus an optional Calendar / Agenda switch for visitors
Accessible details modal, or a link straight to the event page or the event URL
Every element carries an .oxpec- class, and day cells also carry --today, --past and --future
Import and export (Premium)
JSON in and out, from the Events list. An export is self-contained: events, recurrence rules, terms, featured image URLs, and the full definition of every category, venue and organizer it references. Terms are matched by slug and reused, and an event already there with the same slug and start is skipped, so re-importing never doubles your calendar.
Integrations
.ics download per event and a feed for a whole calendar
Add to Google Calendar links
schema.org Event structured data for rich results
Secure Custom Fields / ACF bridge, so get_field() and field bindings resolve without a second editing UI
Free and Premium
Everything described above is in the free plugin. Three things are counted, and one feature is reserved:
Calendars: 2. A saved calendar is a look plus a selection of events. One calendar covers several pages on its own, because every shortcode attribute overrides the saved settings for that placement.
Events: 60. A recurring series counts as the single event it is stored as, whatever number of dates it produces on the page.
Event categories: 6, the fallback category included. Venues and organizers have no limit, and a calendar can be narrowed by either of them.
JSON import and export is part of Premium.
Nothing is counted while you stay under the limits, and nothing is deleted or hidden if a site already sits above them: the counts only decide whether one more can be created. Events, Categories and Settings each show where the site stands, and Events, Upgrade lists what a licence adds.
Premium is not on sale yet.
External services
This plugin connects to Google Fonts, and to nothing else. No data about your visitors is ever sent anywhere.
Google Fonts (fonts.googleapis.com and fonts.gstatic.com)
What it is and what it is used for: Google Fonts is Google’s font hosting service. The calendar composer offers a short list of Google font families for the calendar’s typography. When you pick one, the plugin downloads that font from Google once, to your own server, and serves it from your uploads directory from then on. This is done so that your visitors’ browsers never contact Google: the font is self-hosted, which is what keeps a calendar built with a custom font compatible with the GDPR.
What is sent and when: a request is made only in wp-admin, and only when an administrator saves a calendar that uses a Google font or previews one in the composer. The request asks https://fonts.googleapis.com/css2 for the stylesheet of the family, weight and style you chose, and then asks https://fonts.gstatic.com for the .woff2 files that stylesheet points to. What Google receives is therefore the name of the font you picked, your server’s IP address, and the user agent of the request, which for the font files is WordPress’s own user agent string and includes your site address. No personal data, no visitor data, no content of your site and no site identifier of ours is sent. Nothing is requested again once the font is on disk, and no request is ever made while a page is being rendered for a visitor.
If you do not choose a Google font, the plugin never contacts Google at all.
Service provided by Google: terms of service, privacy policy, Google Fonts privacy FAQ.
Importing events
The JSON import is not a third party service, but it does make your site fetch remote files: an export records the URL of each event’s featured image, so importing a file downloads those images into your media library. The requests go to whatever site the file was exported from, which is normally your own, and they only happen when you deliberately import a file.
Where a calendar can be inserted from
Settings → Implementation lists every place the plugin can put a calendar. A builder integration only becomes selectable once that builder is detected on the site, and unchecking one removes it from that editor without touching pages that already use it.
Shortcode, always on, works anywhere WordPress renders content.
Gutenberg block, listed as “Events Calendar” in the inserter. It either shows one of your saved calendars or holds its own settings for that one placement: display mode, theme, colour scheme, categories, density, hiding finished events, the filter bar, and what a click does. The two are exclusive, so a block pointing at a saved calendar always follows it.
Elementor, Oxygen Builder, Divi, Beaver Builder and Bricks, announced and in development, listed with their detection state so a site running one of them can see it is coming.
Shortcode
[oxpec_calendar id="12"]
Every attribute below overrides the saved calendar for that one placement:
mode: calendar or agenda
scheme: light or dark
theme: minimal, cards, compact or custom (raw is the same thing, and keeps working)
color: force one hex colour on every event, in place of its category colour
text_color: force a hex colour on titles and body text
categories, venues, organizers: comma-separated IDs or slugs
link: modal, single or url
weekends: show, hide or dim
filters, ajax, legend, hide_past: 1 or 0
per_page, max_per_day: numbers
month, year: the period to open on
Example: [oxpec_calendar id="12" mode="agenda" theme="compact" categories="concerts,talks" filters="0"]
The earlier view (grid and list), design and hide_weekends attributes are still accepted and mapped to the ones that replaced them, so a shortcode never stops rendering because an attribute was renamed.
Support
Write to [email protected]. The Support and Suggestions links on the Plugins screen and at the top of Events → Settings open a mail with the subject already filled in and the plugin version included, which is the first thing any reply would otherwise have had to ask for.
Hooks
Filters:
oxpec_event_post_type_args: event post type registration arguments
oxpec_occurrences: the resolved occurrences for a window
oxpec_event_query_args: the WP_Query arguments used to collect events
oxpec_calendar_html: the complete calendar markup
oxpec_event_html: the markup of a single occurrence
oxpec_single_details_html: the details block on the event page
oxpec_schema_event: the JSON-LD node
oxpec_category_color: the colour resolved for a category
oxpec_enable_scf_bridge: whether to register the SCF / ACF field group
