WP Manifestindependent plugin directory
manifest / content / mrk-dynamic-cta

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.

★ 2stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/mrksays/mrk-dynamic-cta/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

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.

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

  1. Download the latest release zip from Releases
  2. Upload the MRK-Dynamic-CTA folder to /wp-content/plugins/
  3. Activate from WordPress Admin → Plugins
  4. 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

License

GPL v2 or later