外掛說明
Clipboard Snippet Copier lets you share ready-to-use shortcodes, demo layouts, or any reusable code snippets with your visitors. Click a button and the snippet is copied straight to their clipboard. No manual selection, no copy/paste errors.
You decide whether the snippet stays hidden (fetched only when copied) or is displayed inline as a styled code block. Either mode is one click away for the visitor.
Why use it?
- Sell or showcase shortcodes — give buyers a “Copy Demo” button without exposing messy markup.
- Document your code — share PHP / JS / CSS examples on tutorial pages with a proper copy button.
- Reduce support tickets — eliminate “the shortcode didn’t work” issues caused by smart quotes, missing brackets, or whitespace mangling.
- Track engagement — built-in per-snippet copy counter shows what your audience actually uses.
Key features
- 📋 One-click copy to clipboard with success/failure tooltip.
- 🔒 Hidden mode — the snippet is stored in the admin and fetched via AJAX only when copied (never rendered in the HTML).
- 👁️ Inline mode — render the snippet visibly as a
<pre><code>block with a copy button on top. - 🧱 Gutenberg block with sidebar controls (snippet ID, label, inline toggle, language hint).
- 🔢 Shortcode for the Classic Editor, WPBakery, Elementor and any other builder.
- 🧮 Copy counter — sortable “Copies” column on the admin list, so you can see what’s popular.
- ⚙️ Settings page — default label, default CSS class, tooltip text, guest-access toggle.
- 📝 CodeMirror editor on the snippet edit screen — keeps your indentation and angle brackets intact.
- ⚡ Tiny footprint — no jQuery dependency on the frontend, no external libraries.
- 🌐 Translation-ready.
How it works
- You add a snippet in Code Snippets Add New and note its ID.
- You drop the Clipboard Snippet block (or the
[clipsnco_code_copy_btn]shortcode) onto any page. - When a visitor clicks the button, the snippet is fetched over AJAX and written to their clipboard — without ever appearing in the page source (unless you turned on inline mode).
Usage
Quick start (shortcode)
[clipsnco_code_copy_btn id="123" label="Copy Code"]
Where 123 is the ID of your snippet (visible in the Code Snippets admin list).
Shortcode attributes
id(required, integer) — the snippet ID.label(optional, string) — button text. Defaults to the value set on the Settings page.class(optional, string) — extra CSS classes added to the button.inline(optional, “yes” / “no”) — whenyes, the snippet is rendered as a<pre><code>block with a copy button on top. Defaultno.language(optional, string) — e.g.php,js,css. Adds alanguage-xxxclass on the<code>element so syntax-highlighter libraries (Prism.js, highlight.js) can colourise it.
Examples:
- Hidden snippet, custom label:
[clipsnco_code_copy_btn id="42" label="Copy shortcode"] - Inline display with PHP highlighting:
[clipsnco_code_copy_btn id="42" inline="yes" language="php"] - Extra CSS class for theme styling:
[clipsnco_code_copy_btn id="42" class="my-cta-btn"]
Gutenberg block
In the block editor, search for “Clipboard Snippet” and insert it. The sidebar lets you set:
- Snippet ID — the post ID of the snippet to copy.
- Button label — overrides the default label.
- Show code inline — toggle hidden vs inline display.
- Language hint — optional syntax-highlighter class.
The block is server-rendered, so you can switch between block and shortcode usage freely.
Alternative button markup
If your page builder won’t let you drop a <button> element, you can put any element on the page with the data attribute or the helper class — the plugin’s frontend script picks it up automatically:
<a href="#" class="wcp-code-copy-btn" data-codecopy-id="123">Copy</a>
…or, when even attributes aren’t allowed, use the class-only form:
<span class="wcp-code-copy-btn data-codecopy-id-123">Copy</span>
Settings
Code Snippets Settings lets you configure:
- Default button label
- Default CSS class applied to every button
- Tooltip text shown on copy success / failure
- Whether non-logged-in visitors are allowed to copy snippets
Copy counter
Every successful copy by a non-editor user bumps a _clipsnco_copy_count post meta value. The count is shown in the Copies column on the snippets admin list. Click the column header to sort by most-copied.
Styling
The button receives the class wcp-code-copy-btn plus anything you add via the shortcode/block class attribute. The inline-mode wrapper uses these classes (override them from your theme):
.clipsnco-inline-wrap— outer container.clipsnco-inline-toolbar— top bar containing the copy button.clipsnco-pre— the<pre>element.clipsnco-code— the<code>element (also getslanguage-xxxwhen set)
螢幕擷圖

The Code Snippets admin list with the ID, Shortcode and Copies columns. 
Editing a snippet — the CodeMirror editor keeps indentation and syntax intact. 
The Settings page (default label, default class, tooltip text, guest-access toggle). 
The Clipboard Snippet Gutenberg block with its sidebar controls. 
A copy button on the frontend, with the success tooltip. 
Inline mode rendering the snippet as a styled <pre><code>block.
適用於區塊編輯器
這個外掛提供 1 個可供 Gutenberg/區塊編輯器使用的區塊。
- Clipboard Snippet
安裝方式
- Upload the plugin files to
/wp-content/plugins/clipboard-snippet-copier, or install it directly from the WordPress.org repository. - Activate the plugin through the Plugins screen.
- Go to Code Snippets Add New to create your first snippet.
- Insert the Clipboard Snippet block on any page, or paste the shortcode below.
常見問題集
-
Yes. Drop as many blocks/shortcodes as you like — each one copies its own snippet.
-
Will the snippet appear in the page source?
-
Only if you enable inline mode. In the default hidden mode the snippet lives in the WordPress admin and is fetched over AJAX the moment the button is clicked.
-
Does it work with page builders like WPBakery or Elementor?
-
Yes. Place the
[clipsnco_code_copy_btn]shortcode in any text/HTML widget, content block or builder element. -
Yes — that’s inline mode. Set
inline="yes"on the shortcode or flip the Show code inline toggle on the block. -
Does this play nicely with syntax highlighters?
-
Yes. In inline mode, add the
languageattribute (language="php",language="js", …) and the plugin emits a matchinglanguage-xxxclass on the<code>element. Prism.js, highlight.js and most other highlighters pick that up automatically. -
Where can I see how many times a snippet has been copied?
-
Go to Code Snippets in the admin. The Copies column shows the running total; click the header to sort.
-
Can I prevent non-logged-in visitors from copying snippets?
-
Yes. Code Snippets Settings Allow guests controls this.
-
Does the plugin require jQuery?
-
No. The frontend script uses native
fetchand the Clipboard API, with anexecCommandfallback for older/insecure contexts. -
Is the plugin translation-ready?
-
Yes — text domain
clipboard-snippet-copier, translations loaded from the/languagesfolder.
使用者評論
這個外掛目前沒有任何使用者評論。
參與者及開發者
變更記錄
1.4
- New: Gutenberg block “Clipboard Snippet” with sidebar controls (id, label, inline toggle, language hint).
- New: Inline mode — render the snippet visibly as a
<pre><code>block with a copy button on top (inline="yes"). - New: Language hint attribute that emits a
language-xxxclass for syntax highlighters. - New: Settings page — default label, default CSS class, tooltip text, guest-access toggle.
- New: Copy counter per snippet, shown as a sortable admin column.
- New: CodeMirror editor on the snippet edit screen for proper code formatting.
- Improvement: Frontend script no longer depends on jQuery.
- Improvement: Centralised
CLIPSNCO_VERSIONconstant used across asset enqueues. - Improvement: Translations now properly loaded via
load_plugin_textdomain(). - Improvement: Escaped admin column output.
- Improvement: AJAX response now includes a
contentkey (legacyshortcodekey preserved for backwards compatibility). - Fix: Removed stray
console.logfrom the frontend script.
1.2
- Fixed: Resource version not set in call to
wp_enqueue_style().
1.1
- Bug fixes.
1.0
- Initial release of Clipboard Snippet Copier.