Thank you for purchasing my plugin. If you have any questions that are beyond the scope of this help file, please feel free to contact me via Support page. Thanks so much!
By: Dannci & Themnific | Support*
* Please note, that plugin support does not include:AI Prompt Manager turns WordPress into a library of AI prompts. You write prompts once, with {{variables}} in them, and your visitors (or your team) filter the library, fill in the blanks and copy a ready-to-use prompt in one click.
Private and team prompts can live next to public ones. Only the prompts you mark as Public are ever shown to visitors.
{{topic}}, {{audience}}… become form fields (text, textarea or dropdown).[apm_prompts] shortcode and four widgets (also usable in Elementor).The plugin is theme-agnostic and ships with minimal styling: layout comes from the plugin, colors and fonts come from your theme. Screenshots in this documentation were taken with the default Twenty Twenty-Five (block) and Twenty Twenty-One (classic) themes, so the front end of your site will look different with your own theme.
ai-prompt-manager-1.6.0.zip (or ai-prompt-manager.zip) file,
ai-prompt-manager' folder into 'plugins' folder in your WordPress installation ( YOUR_HOSTING_ROOT/YOUR_SUBDIRECTORY/wp-content/plugins/ ),
{prefix}apm_usage) and a daily WP-Cron job are created for usage statistics,wp-content/uploads/apm-protected/ is created for images of non-public prompts.The prompt library lives at yoursite.com/prompts/. If that URL shows a 404 error after activation, go to Settings » Permalinks and just hit Save Changes (this refreshes WordPress rewrite rules).
Upload the new version over the old one (Plugins > Add New Plugin > Upload Plugin > Replace current with uploaded). Data migrations run automatically the next time an administrator opens the dashboard. Your prompts are kept.
Your first public prompt in a few minutes:
Write a detailed outline for a blog post about {{topic}}.
The reader is {{audience}}. Aim for {{length}}.The whole library is at yoursite.com/prompts/. Add it to your menu in Appearance > Menus (custom link) or in the Site Editor navigation.
Go to Prompts > Settings (Administrators only):

| Setting | What it does | Default |
|---|---|---|
| Features: Instructions | Reusable text blocks (persona, context, rules) included in prompts. See Instructions. | On |
| Features: Tool variants | Different text per AI tool, chosen in the fill form. See Tool Variants. | Off |
| URL base | The slug of the library and of every prompt URL, e.g. /prompts/my-prompt/. Projects, use cases, tools and outputs live under it: /prompts/project/…, /prompts/task/…, /prompts/tool/…, /prompts/kind/…. | prompts |
| Front-end CSS | Structural + cosmetic, Structural only or None. See Styling. | Structural + cosmetic |
| Command palette on the front end | Logged-in prompt users only, Everyone (visitors search public prompts) or Off. In wp-admin the palette is always available to prompt editors. | Off |
| Syntax-highlight code fences | Loads a bundled highlighter (Prism, about 15 KB gzipped) only on pages that contain a ``` code block. | Off |
| Schema.org JSON-LD | Adds CreativeWork structured data to public prompts. | On |
| Protect result images | Images of non-public prompts are moved to a protected folder. See Result Images. | On |
| Delete all … on uninstall | Removes all prompts, instructions and terms when you delete the plugin. See Uninstall. | Off |
| Keep raw usage events (days) | How long single copy events are kept (7–3650). The totals are kept permanently. | 90 |
Turning a feature off hides it everywhere and ignores its data, but nothing is deleted. Switch it back on and your instructions or tool variants are there again.
Changing the URL base refreshes permalinks automatically. Old URLs stop working, so set it before you share links.
Go to Prompts > Add New Prompt. The edit screen uses a plain-text editor (not Gutenberg), so the prompt is stored exactly as you type it.

The edit screen has these sections:
If a box is missing, open Screen Options at the top of the screen and enable it.
{{topic}}. Names use lowercase letters, numbers and underscores and start with a letter (e.g. {{target_audience}}).```js
export function sum(a, b) { return a + b; }
```


Prompt text is always shown as plain text. HTML, shortcodes and blocks inside a prompt are displayed, never executed.
Every {{placeholder}} in the prompt automatically becomes a text field in the fill form. Declare a variable in the Variables box when you want to give it a nicer label, a default value or a dropdown.

topic),text (one line), textarea (several lines) or select (dropdown),select),Limits: up to 50 variables per prompt, up to 50 options per dropdown, names up to 40 characters.
Each prompt has exactly one Output, chosen in the Prompt settings box: Text, Image or Code.

The Output fields box changes with the selected output:
| Output | Fields |
|---|---|
| Text | Tone, Audience, Length, Output format |
| Image | Aspect ratio (1:1, 4:5, 3:2, 2:3, 16:9, 9:16, 21:9), Negative prompt, Style references, Result images |
| Code | Language, Stack, Ask for input code when assembling, Expected output (diff, full file, review list, explanation) |


Label: value, e.g. Tone: Friendly, expert. Empty fields add nothing.{{aspect_ratio}}). Then the value is inserted there and not added again at the end.Result images of Image prompts are described in Result Images.
Instructions are reusable pieces of text – a persona, facts about a client or project, house style rules – that you write once and include in many prompts. Edit an instruction and every prompt that uses it changes.
Instructions can be switched off in Prompts > Settings > Features. Image prompts don't use instructions.


Visitors only ever get Public instructions. Private and Team instructions are never sent to them and their names are not shown. The prompt edit screen warns you when an attached instruction is not public.
Types group instructions (Persona, Context and Rules are created on activation). Manage them in Prompts > Instruction Types:


{{variables}} work inside instructions too; the fill form shows fields for them.The fill form lists what is included besides the visible prompt, e.g. “Also includes: Senior copywriter (Persona)”.
Instructions → prompt text (+ tool variant) → output fields → input code.
Tool variants let one prompt carry extra or different text per AI tool. Typical use: Midjourney parameters.
--ar {{aspect_ratio}} --no {{negative}}), a multi-line suffix becomes its own paragraph.Up to 20 variants per prompt.
Prompts that work today can get worse after a model update. Record what you tested in the Quality & testing box:

Prompts are organised with three category-like taxonomies. All of them are filters in the library and have their own archive pages.
| Taxonomy | Used for | URL |
|---|---|---|
| Projects | Client, product or team. Also available on instructions. | /prompts/project/… |
| Use Cases | What the prompt is for (Blog writing, Refactoring…). Several per prompt. | /prompts/task/… |
| AI Tools | ChatGPT, Claude, Midjourney… Required for tool variants. | /prompts/tool/… |

The admin All Prompts list shows Output, Visibility, Quality and Uses for every prompt and can be filtered by output, visibility and project:

Note: Quick Edit and Bulk Edit are not available for prompts and instructions, because they can't handle the visibility settings. Open the prompt to change it.
Every prompt and instruction has one of three visibility levels, set in the Prompt settings (or Visibility) box:

| Visibility | Who can see it |
|---|---|
| Private (only me) | Only the author (and Administrators). |
| Team | Logged-in users who work with prompts (Administrators, Editors, Prompt Members). |
| Public | Everyone, including visitors and search engines. |
noindex tag, and pages viewed by logged-in users are sent with no-cache headers so a page cache never stores them.| Administrator | Editor | Prompt Member | Other roles | |
|---|---|---|---|---|
| Create prompts and instructions | ✓ | ✓ | ✓ | – |
| See Team prompts | ✓ | ✓ | ✓ | – |
| Edit other people's Team prompts | ✓ | ✓ | – | – |
| Make a prompt Public | ✓ | ✓ | – | – |
| Create Projects, Use Cases, AI Tools, Instruction Types | ✓ | ✓ | – | – |
| See other people's Private prompts | ✓ | – | – | – |
| Change plugin Settings | ✓ | – | – | – |
When a Prompt Member chooses “Public”, the prompt is saved as Team. An Editor or Administrator can then publish it.

The library is at yoursite.com/prompts/ (see URL base). It shows 24 prompts per page as cards:

Cards look slightly different per output: Code cards start with a language tile (PHP, JS…), Image cards with a round thumbnail of the first result image, Text cards with the first use case. The “Assemble prompt” button opens the prompt.



The bar stacks automatically in narrow areas (sidebars, small Elementor columns). Filtered result pages get a noindex tag, so search engines don't index endless filter combinations.
Each prompt page shows the description, badges (output, quality, tools, use cases, project), the prompt text with highlighted {{variables}}, a Copy button and the Fill & copy form:


{{name}} and the form shows an “Unfilled:” note.Image prompts show their result images above the prompt; Code prompts with an input slot show the Input code box:

Press Ctrl+K (⌘+K on Mac) to search, fill and copy any prompt without leaving the page.


Logged-in prompt editors can also open it from the Prompts item in the admin bar. In wp-admin, Ctrl/⌘+K opens WordPress's own command palette; type “Search prompts” there.
Besides the library at /prompts/, you can embed a prompt list on any page or post.

The preview inside the block editor is not styled. On the live page the list uses the full plugin styling:

Works in the Classic editor, the Shortcode block, Elementor's Shortcode widget and text widgets:
[apm_prompts kind="" project="" task="" tool="" per_page="12" filters="1"]
| Attribute | Value |
|---|---|
kind | Output slug: text, image or code |
project | Project slug |
task | Use case slug |
tool | AI tool slug |
per_page | Number of prompts, 1–60 (default 12) |
filters | 1 shows the search & filter bar, 0 hides it |
Example – six Code prompts without filters:
[apm_prompts kind="code" per_page="6" filters="0"]

The plugin registers its own templates: Single Prompt, Prompt Archive and one archive template per taxonomy. Edit them in Appearance > Editor > Templates > AI Prompt Manager, e.g. to add a sidebar or change the header:

The templates contain the Prompt (single view) and Prompt Archive blocks, which output the prompt and the library. Keep these blocks in the template.
The plugin uses its own page templates automatically. If your theme has its own single-apm_prompt.php, archive-apm_prompt.php or taxonomy-apm_*.php, the theme's files are used instead. To change only the markup, see Template Overrides.
Prompt pages and the library are generated automatically, so they cannot be edited in Gutenberg or Elementor like a normal page. To build a custom landing page, create a normal page and add the Prompt Library block, the shortcode or the widgets.
The plugin comes with four widgets. Go to Appearance > Widgets (classic themes) and add them to your sidebar or footer areas. In Elementor you find them in the widget panel under “WordPress”.

(We are using the 'Classic Widgets' plugin to get this widget screen: https://wordpress.org/plugins/classic-widgets/. With the block widget editor, add them through the “Legacy Widget” block.)
The same search & filter bar as in the library. For each filter choose In the bar, Under “More filters” or Hidden. The search leads to the prompt library.

Prompt cards or a compact list with Copy buttons.

On a prompt page the widget never lists the prompt being viewed.
Links to Outputs, Projects, Use cases or AI tools, as a list or chips, ordered by name or by number of prompts, with optional counts (counts include public prompts only).

One public prompt (“prompt of the week”) with highlighted variables and a Copy button, or its card.

The four widgets in a footer area (Twenty Twenty-One theme):

Private and team prompts are only shown to people allowed to read them.
Image prompts can show what the prompt produced.

On the prompt page the images are shown in a grid (1 image = full width, 2 images = two columns, 3 or more = three columns):

Images and thumbnails are generated by WordPress automatically. Use the “Select images” button (not the main editor) to add result images.
Install and activate the free Lightbox for Gallery & Image Block plugin and result images open in a lightbox with captions. No setup is needed. Without it, a click opens the full-size image.
When Protect result images is on (default), images of Private and Team prompts are moved to wp-content/uploads/apm-protected/, renamed with a random name and only served to users who can read the prompt. When the prompt becomes Public they move back.
Nginx and IIS servers ignore the .htaccess file that blocks direct access to that folder. Add this rule to your Nginx config (or ask your host):
location ^~ /wp-content/uploads/apm-protected/ { deny all; }
The Settings page shows a notice when it detects such a server.
Note: an image belongs to the first prompt that uses it. Don't reuse the same image in a public and a private prompt; upload it twice instead.
The plugin counts how often each prompt is copied. The total is shown in the Uses column of the prompt list and drives the “Most copied” order of the Prompts widget.
WP-Cron only runs when your site gets visits. If your host disables WP-Cron (DISABLE_WP_CRON), make sure a real server cron job calls wp-cron.php, otherwise the counts never update.
Developers can also count anonymous copies with the apm_log_anonymous_usage filter – only together with your own rate limiting.
The plugin takes colors and fonts from your theme. Choose how much CSS it adds in Prompts > Settings > Front-end CSS:
CSS is loaded only on prompt pages and on pages that use the block, the shortcode or a widget.
All plugin rules are low-priority (inside @layer apm and :where()), so any rule in your theme or in Appearance > Customize > Additional CSS wins without !important. Buttons use the .wp-element-button class, so block themes style them automatically.
Most sizes can be changed with CSS variables, e.g.:
:root {
--apm-gap: 1.5rem; /* space between cards */
--apm-radius: 12px; /* corner radius */
--apm-mono: "JetBrains Mono", monospace; /* prompt font */
}
Available variables: --apm-col, --apm-gap, --apm-space, --apm-radius, --apm-prompt-max, --apm-prompt-font, --apm-mono, --apm-container, --apm-gutter, --apm-palette-bg, --apm-palette-fg, --apm-hl-*.
To change the markup, copy a file from the plugin's templates/ folder into a prompt-manager folder in your (child) theme and edit the copy:
wp-content/plugins/ai-prompt-manager/templates/card.php → wp-content/themes/your-child-theme/prompt-manager/card.php
| File | What it renders |
|---|---|
single-prompt.php, archive-prompt.php | Page templates (classic themes) |
content-single.php | The prompt page content |
content-archive.php | The library (filters, grid, pagination) |
card.php | One prompt card |
parts/fill-form.php | The Fill & copy form |
parts/filters.php | The search & filter bar |
parts/meta.php | Badges under the title |
parts/palette.php | Command palette shell |
single/kind.php, single/kind-image.php | Output-specific parts of the prompt page (e.g. result images) |
widgets/prompts.php, widgets/terms.php, widgets/prompt.php | Widget output |
Files can be made per output by adding the output slug: card-code.php, content-archive-code.php, single/kind-image.php.
Your copies are not updated with the plugin. After an update, compare them with the new versions (the changelog in README.md lists templates that changed).
AI Prompt Manager doesn't need any other plugin. These optional plugins work with it:
Use the four prompt widgets from the “WordPress” section of the Elementor panel, or the shortcode in a Shortcode widget. The plugin loads its CSS in the page head when an Elementor page uses one of its widgets.
Plugin page: Plugin Homepage. Opens result images in a lightbox. No setup needed.
Plugin page: Plugin Homepage. Restores the classic widget screen (optional).
Plugin page: Plugin Homepage. Moves prompts between sites. See Import / Export.
Prompts, instructions and their terms are exported and imported with the standard WordPress tools.
After the import the plugin automatically reconnects instructions, result images and tool variants and restores each item's visibility.
Public items stay public only if the importing user may publish public prompts (Administrator or Editor). Plugin Settings are not part of the export file – set them again on the new site.
Importing the same file twice doesn't create duplicates of existing items.
A full technical reference (data model, security model, REST details) is in README.md inside the plugin folder. The essentials:
| Hook | Type | Purpose |
|---|---|---|
apm_kinds | filter | Add or change outputs and their fields. |
apm_assembled_parts | filter | Change the parts of an assembled prompt before they are joined. |
apm_prompt_html | filter | Change the rendered prompt HTML (must stay escaped). |
apm_locate_template | filter | Change the resolved template path. |
apm_schema_data | filter | Change the JSON-LD data. |
apm_load_styles | filter | Return false to disable the plugin CSS. |
apm_archive_per_page | filter | Prompts per library page (default 24). |
apm_log_anonymous_usage | filter | Count copies by visitors who aren't logged in. |
apm_live_search | filter | Return false to turn off live search suggestions. |
apm_card_cta_label | filter | Card button text (default “Assemble prompt”). |
apm_lang_abbr | filter | Language abbreviation on code cards (“JavaScript” → “JS”). |
apm_visibility_changed | action | Fires when visibility is set through the API. |
Example – turn off live search and show 12 prompts per library page (child theme functions.php):
add_filter( 'apm_live_search', '__return_false' );
add_filter( 'apm_archive_per_page', function () { return 12; } );
apm_assemble(), apm_get_kind(), apm_get_visibility(), apm_set_visibility(), apm_render_prompt(), apm_locate_template(), apm_get_template_part().
Prompts created with wp_insert_post() are Private until you call apm_set_visibility( $post_id, 'public' ) (or 'team').
/wp-json/apm/v1/)| Route | Purpose |
|---|---|
GET prompts | List prompts. Parameters: search, kind, project, task, tool, page, per_page (max 50), lite. |
GET prompts/{id} | Prompt text, variables, tools and instruction groups. |
POST prompts/{id}/assemble | Assemble a prompt. Body: snippets, tool, values, input_code, dry_run. |
Only prompts the current user may read are returned. Authentication: cookie + X-WP-Nonce, or Application Passwords for external tools. Prompts and instructions are not available through the core /wp/v2/ routes.
The plugin is translation ready (text domain ai-prompt-manager). Version 1.6.0 doesn't include a .pot file yet, so create one first.
wp-content/languages/plugins/) so updates don't overwrite your translation.wp i18n make-pot . languages/ai-prompt-manager.pot
ai-prompt-manager-de_DE.po / .mo (use your locale; the file name is crucial, see language codes and country codes),wp-content/languages/plugins/.Your site language (Settings > General > Site Language) must match the translation.
Deleted content cannot be restored. Export your prompts first (Tools > Export). Users who had the Prompt Member role are left without a role; assign them a new one in Users.
Go to Settings > Permalinks and hit Save Changes.
Check that the prompt is Published and its Visibility is Public. A Prompt Member can't make prompts public – an Editor or Administrator has to.
Only Public instructions reach visitors. Image prompts never use instructions.
See Usage Statistics: only assembled copies by logged-in users are counted, once a day.
It is off on the front end by default. Enable it in Prompts > Settings.
Once again, thank you so much for purchasing this plugin.