=== Tag Display === Contributors: s7ntech Tags: tags, display, shortcode, customization, tag cloud Requires at least: 5.0 Tested up to: 6.8 Requires PHP: 7.2 Stable tag: 1.7.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Tag Display is a WordPress plugin to display post tags with multiple templates, custom colors, and full control over output. == Description == Tag Display lets you show WordPress tags anywhere on your site — choose from five ready-made templates or build your own from the theme folder. 1. **Default** — Tag buttons with hover effects. 2. **Minimal** — Comma-separated text links, no extra markup. 3. **Tag Cloud** — Font sizes proportional to post count. 4. **Outlined** — Transparent background with colored border, pill-style. 5. **Hashtag** — Tags prefixed with `#`, social-style. **Features:** - Five tag templates: buttons, inline text, tag cloud, outlined pills, hashtag. - Native Gutenberg block with sidebar controls (no shortcode needed). - Shortcode support: `[s7n_tag_display]` or `[s7n_tag_display template="minimal"]`. - Admin settings page with live template preview and color picker. - Automatic or manual tag display (before or after content). - Tag ordering: alphabetical, by post count, or random. - Limit the number of tags shown and exclude specific tags by slug. - Post count next to each tag (e.g. *WordPress (12)*) — opt-in per instance or globally. - Support for custom taxonomies alongside WordPress tags. - SEO options: rel="nofollow" and target="_blank" for tag links. - Theme template override: place a custom template file in your theme folder to take over the output. == Installation == 1. Upload the `tag-display` folder to the `/wp-content/plugins/` directory. 2. Activate the plugin through the 'Plugins' menu in WordPress. 3. Go to **Settings → Tag Display** to configure templates, colors, tag ordering, and auto-display options. 4. Display tags in one of three ways: * **Shortcode** — add `[s7n_tag_display]` to any post or page. * **Gutenberg block** — search for "Tag Display" in the block inserter. * **Automatic** — enable auto-display in **Settings → Content Types** to add tags to every post automatically. == Frequently Asked Questions == = How do I use the plugin? = Activate the plugin, then go to **Settings → Tag Display** to pick a template and configure colors. From there, add tags to your posts in one of three ways: 1. **Shortcode** — paste `[s7n_tag_display]` into any post or page. 2. **Gutenberg block** — search for "Tag Display" in the block inserter. 3. **Automatic** — enable auto-display in **Settings → Content Types** and tags appear on every post without touching the editor. = Can I change the template style? = Yes. Choose between Default, Minimal, Cloud, Outlined, and Hashtag templates: * From the settings page: **Settings → Tag Display → General Settings → Default Template**. * Via shortcode: `[s7n_tag_display template="outlined"]` * Via Gutenberg block: select the block and use the **Template** option in the sidebar. = How do I use the Gutenberg block? = In the block editor, click the **+** button and search for "Tag Display". Add the block to your post. Use the sidebar panel (**Display Settings**, **Link Options**, **Title**) to override the template, ordering, tag limit, and other options for that specific block — independently of the global settings. = What shortcode attributes are available? = All attributes are optional and override the global settings for that specific instance: `[s7n_tag_display template="hashtag" order="count_desc" max="8" exclude="news,draft" nofollow="true" new_tab="true" show_count="true" title="Related topics:"]` * `template` — `default`, `minimal`, `cloud`, `outlined`, `hashtag` * `order` — `alpha_asc`, `alpha_desc`, `count_desc`, `count_asc`, `random` (default: global setting) * `max` — maximum number of tags to show, e.g. `max="5"` (0 = all) * `exclude` — comma-separated slugs to hide, e.g. `exclude="news,uncategorized"` * `nofollow` — `true` to add `rel="nofollow"` to tag links * `new_tab` — `true` to open links in a new tab * `show_count` — `true` to show the post count next to each tag, e.g. *WordPress (12)* * `title` — custom label above the tags, e.g. `title="Topics:"` (empty string hides the title) = How do I limit or sort the tags? = Open **Settings → Tag Display → General Settings**: * **Tag Order** — alphabetical (A→Z / Z→A), by post count (most/least used), or random. * **Max Tags** — show only the first N tags (0 = show all). * **Exclude Tags** — comma-separated slugs of tags to always hide. These settings can also be overridden per-instance via shortcode or Gutenberg block. = How do I hide specific tags? = In **Settings → Tag Display → General Settings → Exclude Tags**, enter the slugs (not names) of the tags you want to hide, separated by commas. Example: `news, uncategorized, draft`. To find a tag's slug, go to **Posts → Tags** in the WordPress admin. = Can I display tags automatically without a shortcode? = Yes. Go to **Settings → Tag Display → Content Types**, enable auto-display for posts, pages, or custom post types, and choose whether tags appear **before** or **after** the content. = How do I add rel="nofollow" or open links in a new tab? = Go to **Settings → Tag Display → General Settings** and enable the **rel="nofollow"** or **Open in new tab** checkboxes. These can also be set per-instance via shortcode (`nofollow="true"`, `new_tab="true"`) or Gutenberg block sidebar. = Can I create a fully custom template from my theme? = Yes. Place a file named `tag-display-template-{name}.php` in your theme (or child theme) root folder, where `{name}` is the template you want to override: `default`, `minimal`, `cloud`, `outlined`, or `hashtag`. Example: to override the default template, create `wp-content/themes/your-theme/tag-display-template-default.php`. The plugin picks it up on the next page load. A commented example file is included in the plugin's `examples/` folder. The following variables are available in your custom template: * `$tags` — array of WP_Term objects (`->name`, `->slug`, `->count`) * `$display_title` — label text above the tags * `$display_nofollow` — boolean, whether to add `rel="nofollow"` * `$display_new_tab` — boolean, whether to open links in a new tab * `$display_show_count` — boolean, whether to show post count next to each tag = Is it compatible with the latest WordPress version? = Tested up to WordPress 6.8. If you run into a compatibility issue, open a thread on the support forum. == Screenshots == 1. General Settings 2. Content Types 3. Appearance 4. Template Preview 5. Help == Changelog == = 1.7.0 = * Added internationalization (i18n) support: plugin strings are now translatable. * Added Italian translation (it_IT). * Added Text Domain header to plugin file. * Fixed two admin strings missing translation wrappers. = 1.6.0 = * Modernized admin UI: new card-based layout, updated tab navigation, section wrappers, improved color picker area. * Updated Template Preview tab: 5 cards with header/badge/body structure, fixed nesting bug (Outlined and Hashtag cards were incorrectly nested inside Tag Cloud). * Updated Help tab: 5-template documentation, Gutenberg block guide, full shortcode attribute reference, theme override instructions. * Updated WordPress.org screenshots to reflect current admin UI with all 5 templates. * Updated version in package.json and block.json to match plugin version. = 1.5.0 = * Added theme template override: place `tag-display-template-{name}.php` in your theme folder to fully customize the output. * Added `examples/tag-display-template-custom.php` with a fully commented template starter. * Override is applied automatically for both shortcode and Gutenberg block rendering. = 1.4.0 = * Added native Gutenberg block (dynamic block, server-side rendered) with InspectorControls for all display options. * Added Outlined template: transparent background with colored border pill-style buttons. * Added Hashtag template: social-style tags prefixed with # (Instagram/Twitter look). * Admin: improved admin preview cards for Outlined and Hashtag templates with live color updates. * Admin: template select now switches to Template Preview tab and highlights the matching card in real-time. = 1.3.0 = * Added tag ordering options: alphabetical (A→Z / Z→A), by post count (most/least used), and random. * Added maximum tags limit: show only the first N tags (admin setting + shortcode attribute). * Added tag exclusion: comma-separated list of slugs to exclude from display. * Added auto-display position: choose to insert tags before or after the post content. * Added rel="nofollow" option for tag links (SEO). * Added target="_blank" option to open tag links in a new tab. * Added post count display option: show number of posts next to each tag (e.g. WordPress (12)). * Extended shortcode with new attributes: order, max, exclude, nofollow, new_tab, show_count, title. * Admin: added Reset to Defaults button for color settings. * Admin: active tab is now remembered across page loads (localStorage). * Admin: added unsaved-changes sticky notice when form fields are modified. * Admin: changing the Default Template now switches to the Template Preview tab and highlights the matching card. = 1.2.1 = * Fixed tag cloud template: font sizes now scale proportionally to actual tag post counts instead of random values. * Fixed accessibility: added :focus-visible outlines to all template links for keyboard navigation. * Fixed accessibility: tag title changed from non-semantic div to p element with ARIA heading role. * Added :active state on Default and Cloud template links. * Added :visited state on Default and Minimal template links. * Added prefers-reduced-motion support to disable CSS transitions for users who prefer it. * Added reset for box-shadow, border-bottom and background-image that themes may add to links. * Added tablet responsive breakpoint at 768px. * Fixed admin preview links using href="#" (prevented scroll jump on click). * Fixed admin color picker: hover style now updates a single persistent style tag instead of creating new ones on every change. = 1.2.0 = * Added support for custom taxonomies. * Terms from selected custom taxonomies are now displayed alongside WordPress tags. * Updated templates to use get_term_link() for better compatibility with custom taxonomies. * Added new admin setting to select which custom taxonomies to include. = 1.0.0 = * Initial release. * Added three customizable templates. * Integrated shortcode support. * Created admin settings page. == License == This plugin is licensed under the GPLv2 or later.