MRK Dynamic CTA
Cache-safe, randomized Call-to-Action blocks for WordPress. Assign CTAs to any page, multiple pages, or all pages site-wide. Delivered via AJAX so page caches never serve stale content.
by Muhammad Rameez Khalid · github.com/mrksays/mrk-dynamic-cta · website
★ 2stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/mrksays/mrk-dynamic-cta/archive/refs/heads/main.zipCache-safe, randomized Call-to-Action blocks for WordPress. Assign CTAs to any page, multiple pages, or all pages site-wide. Delivered via AJAX so page caches never serve stale content.
Author: Muhammad Rameez Khalid
Version: 1.1.0
License: GPL v2 or later
Requires: WordPress 6.0+, PHP 8.0+
Features
- Custom post type (CTAs) with quick edit, bulk edit, and admin list filter
- Show CTA For — target any individual page(s), all pages site-wide, custom post type archives, or the blog
- Page picker with live search, Select All, and Clear All shortcuts
- Cache-safe AJAX delivery via
nocache_headers() - Random CTA rotation — multiple matching CTAs are shuffled per load
- Global style panel (CTAs → CTA Styles) with live preview
- Shortcode
[dynamic_cta]
Installation
- Download the latest release zip from Releases
- Upload the
MRK-Dynamic-CTAfolder to/wp-content/plugins/ - Activate from WordPress Admin → Plugins
- Go to CTAs → CTA Styles to configure appearance
Shortcode
[dynamic_cta]
Place in any sidebar widget, block editor, or PHP template.
Show CTA For — Target Types
| Target | Meta Value | Matches When |
|---|---|---|
| All Pages (entire website) | all_pages |
Every page, post, and archive on the site |
| Individual WordPress Page | page_{ID} |
Only that specific page by post ID |
| Blog / Posts Page | blog |
The posts page and individual post singles |
| Custom Post Type Archive | cpt_{slug} |
That CPT's archive and singular views |
File Structure
MRK-Dynamic-CTA/
├── mrk-dynamic-cta.php ← Bootstrap
├── includes/
│ ├── cpt.php ← Custom post type
│ ├── meta-box.php ← CTA Details + Show CTA For UI
│ ├── save.php ← Options + save handler
│ ├── ajax.php ← AJAX CTA renderer
│ ├── shortcode.php ← [dynamic_cta]
│ ├── frontend-scripts.php ← Enqueue CSS/JS
│ ├── admin-columns.php ← List table column + filter
│ ├── quick-edit.php ← Quick edit UI
│ ├── bulk-edit.php ← Bulk edit UI + save
│ └── settings.php ← CTA Styles page
├── js/cta-ajax.js
├── css/cta-style.css
├── admin/settings.js
└── README.md