{"id":110909,"date":"2019-10-19T16:46:05","date_gmt":"2019-10-19T16:46:05","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/category-popular-tags\/"},"modified":"2026-04-06T18:51:19","modified_gmt":"2026-04-06T18:51:19","slug":"category-popular-tags","status":"publish","type":"plugin","link":"https:\/\/uz.wordpress.org\/plugins\/category-popular-tags\/","author":17608993,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.2","stable_tag":"2.0.2","tested":"7.0","requires":"5.0","requires_php":"8.0","requires_plugins":null,"header_name":"Category Popular Tags","header_author":"Abidemi Kusimo","header_description":"Display popular tags on achieve page of your website using sortcode. For example [cat_tags count=10 type=\"popular-tags\" category_id=\"1\"]. You can also call this function from your theme file: cush_category_popular_tag().","assets_banners_color":"fefefe","last_updated":"2026-04-06 18:51:19","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.me\/smoothkush","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/category-popular-tags\/","header_author_uri":"http:\/\/sidocode.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":1171,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"kusimo","date":"2026-04-06 12:24:58"},"2.0.2":{"tag":"2.0.2","author":"kusimo","date":"2026-04-06 18:51:19"}},"upgrade_notice":{"2.0.0":"<p>Major feature release. All existing shortcodes, attributes, and settings are fully preserved \u2014 no action required on upgrade. New features are opt-in via the updated admin panel at Settings \u2192 Category Tags.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2176187,"resolution":"128x128","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":2176187,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.0","2.0.2"],"block_files":[],"assets_screenshots":{"Screenshot-3.jpg":{"filename":"Screenshot-3.jpg","revision":3499824,"resolution":"3","location":"assets","locale":""},"Screenshot-4.jpg":{"filename":"Screenshot-4.jpg","revision":3499824,"resolution":"4","location":"assets","locale":""},"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3499824,"resolution":"1","location":"assets","locale":""},"screenshot-1.png":{"filename":"screenshot-1.png","revision":2176187,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3499824,"resolution":"2","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2176187,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2176187,"resolution":"3","location":"assets","locale":""},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3499824,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3499824,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"<strong>Custom Buttons tab<\/strong> \u2014 add, reorder, and manage curated tag buttons with icon upload","2":"<strong>Auto Popular Tags tab<\/strong> \u2014 settings, live category preview, and auto-generated shortcode","3":"<strong>Style tab<\/strong> \u2014 full button style controls with real-time preview panel","4":"<strong>Placement tab<\/strong> \u2014 automatic display settings for archives and WooCommerce","5":"<strong>Front-end display<\/strong> \u2014 styled popular tag buttons on a category archive page","6":"<strong>Front-end display<\/strong> \u2014 custom curated buttons with icons on a regular page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1445,89,49904,259525,609],"plugin_category":[57],"plugin_contributors":[177527,259526],"plugin_business_model":[],"class_list":["post-110909","plugin","type-plugin","status-publish","hentry","plugin_tags-archive","plugin_tags-category","plugin_tags-popular-tags","plugin_tags-tag-buttons","plugin_tags-tags","plugin_category-taxonomy","plugin_contributors-kusimo","plugin_contributors-sidocode","plugin_committers-kusimo"],"banners":{"banner":"https:\/\/ps.w.org\/category-popular-tags\/assets\/banner-772x250.png?rev=2176187","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/category-popular-tags\/assets\/icon-128x128.png?rev=2176187","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/category-popular-tags\/assets\/screenshot-1.png?rev=2176187","caption":"<strong>Custom Buttons tab<\/strong> \u2014 add, reorder, and manage curated tag buttons with icon upload"},{"src":"https:\/\/ps.w.org\/category-popular-tags\/assets\/screenshot-2.png?rev=2176187","caption":"<strong>Auto Popular Tags tab<\/strong> \u2014 settings, live category preview, and auto-generated shortcode"},{"src":"https:\/\/ps.w.org\/category-popular-tags\/assets\/screenshot-3.png?rev=2176187","caption":"<strong>Style tab<\/strong> \u2014 full button style controls with real-time preview panel"},{"src":"https:\/\/ps.w.org\/category-popular-tags\/assets\/Screenshot-4.jpg?rev=3499824","caption":"<strong>Placement tab<\/strong> \u2014 automatic display settings for archives and WooCommerce"},{"src":"https:\/\/ps.w.org\/category-popular-tags\/assets\/screenshot-5.jpg?rev=3499824","caption":"<strong>Front-end display<\/strong> \u2014 styled popular tag buttons on a category archive page"},{"src":"https:\/\/ps.w.org\/category-popular-tags\/assets\/screenshot-6.png?rev=3499824","caption":"<strong>Front-end display<\/strong> \u2014 custom curated buttons with icons on a regular page"}],"raw_content":"<!--section=description-->\n<p><strong>Category Popular Tags<\/strong> gives you a fully styled set of tag buttons that can appear anywhere on your WordPress site \u2014 category archives, tag archives, author archives, individual pages, WooCommerce product category pages, or embedded directly in post content via shortcode.<\/p>\n\n<p>There are two types of buttons you can create:<\/p>\n\n<ul>\n<li><p><strong>Auto Popular Tags<\/strong> \u2014 the plugin queries your posts and surfaces the most-used tags for a given category, ordered by frequency. Drop the shortcode anywhere and it works: on a category archive it shows that category's popular tags; on any other page it automatically falls back to your site-wide most popular tags.<\/p><\/li>\n<li><p><strong>Custom Buttons<\/strong> \u2014 build a hand-picked set of tag buttons with your own labels, URLs, and optional icon images. Drag them into any order and use the generated shortcode to place them exactly where you want.<\/p><\/li>\n<\/ul>\n\n<p>Both button types share the same global style system, so one set of controls governs the look of everything: colours, hover states, font size, weight, border radius, padding, icon size, column count, gap, box shadow, and text transform.<\/p>\n\n\n\n<h4>Admin Panel \u2014 Four Tabs<\/h4>\n\n<p><strong>Tab 1 \u2014 Custom Buttons<\/strong><\/p>\n\n<p>Manually create and manage a list of styled buttons. Each row has:<\/p>\n\n<ul>\n<li>An optional icon image (uploaded via the WordPress media library)<\/li>\n<li>A text label<\/li>\n<li>A URL<\/li>\n<\/ul>\n\n<p>Rows are drag-and-drop reorderable. Once saved, the tab shows a ready-to-copy shortcode. You can also display a specific subset of buttons in any order using <code>[cpt_buttons ids=\"3,1,2\"]<\/code>.<\/p>\n\n<p><strong>Tab 2 \u2014 Auto Popular Tags<\/strong><\/p>\n\n<p>Configure the automatic tag discovery:<\/p>\n\n<ul>\n<li>Set the section title shown above the buttons<\/li>\n<li>Set the default number of tags to display<\/li>\n<li>Toggle sequential number badges on each button<\/li>\n<li>Choose the cache duration (1 hour, 12 hours, 1 day, or 1 week)<\/li>\n<\/ul>\n\n<p>A <strong>live preview<\/strong> section lets you pick any category from a dropdown and see exactly how the tags will look on the front end \u2014 before saving anything. After loading a preview the tab shows you a category-specific shortcode (e.g. <code>[popular_category_tags category_id=\"3\"]<\/code>) ready to copy.<\/p>\n\n<p><strong>Tab 3 \u2014 Style<\/strong><\/p>\n\n<p>Every visual property of the buttons is controlled here:<\/p>\n\n<ul>\n<li>Button background colour and hover background colour<\/li>\n<li>Font colour and hover font colour<\/li>\n<li>Border colour, border width, and border radius<\/li>\n<li>Font size, font weight, and text transform (none \/ uppercase \/ capitalize)<\/li>\n<li>Padding (top\/bottom and left\/right independently)<\/li>\n<li>Icon size and the gap between the icon and the label text<\/li>\n<li>Gap between buttons on desktop and on mobile independently<\/li>\n<li>Column count on desktop (auto-fit, 1, 2, 3, or 4) and on mobile (1 or 2)<\/li>\n<li>Box shadow toggle<\/li>\n<\/ul>\n\n<p>A <strong>real-time preview<\/strong> updates as you drag sliders and pick colours \u2014 no save required to see the effect.<\/p>\n\n<p><strong>Tab 4 \u2014 Placement<\/strong><\/p>\n\n<p>Control where tags appear automatically, without touching any shortcode or theme file:<\/p>\n\n<ul>\n<li><strong>Category archives<\/strong> \u2014 before posts, after posts, both, or after the page title (a JavaScript-based injection that works on any theme)<\/li>\n<li><strong>Tag archives<\/strong> \u2014 show site-wide popular tags on tag archive pages<\/li>\n<li><strong>Author archives<\/strong> \u2014 show site-wide popular tags on author archive pages<\/li>\n<li><strong>Exclude categories<\/strong> \u2014 prevent automatic display on specific categories<\/li>\n<li><strong>WooCommerce<\/strong> (shown only when WooCommerce is active) \u2014 auto-display before or after products on product category pages<\/li>\n<\/ul>\n\n\n\n<h4>Shortcodes<\/h4>\n\n<p><strong>Auto popular tags \u2014 simplest form:<\/strong>\n    [popular_category_tags]<\/p>\n\n<p>Used on a category archive \u2192 shows popular tags for that category.\nUsed anywhere else \u2192 shows your site-wide most popular tags automatically.<\/p>\n\n<p><strong>With specific category:<\/strong>\n    [popular_category_tags category_id=\"5\"]<\/p>\n\n<p><strong>With count and custom title:<\/strong>\n    [popular_category_tags count=\"8\" category_id=\"5\" title=\"Browse by Topic\"]<\/p>\n\n<p><strong>All available attributes:<\/strong><\/p>\n\n<ul>\n<li><code>category_id<\/code> \u2014 the ID of the category to pull tags from. Omit to auto-detect or fall back to site-wide.<\/li>\n<li><code>count<\/code> \u2014 number of tags to show. Omit to use the admin default.<\/li>\n<li><code>title<\/code> \u2014 override the section heading for this instance only.<\/li>\n<li><code>verbose<\/code> \u2014 set to <code>1<\/code> to output HTML comments useful for debugging.<\/li>\n<\/ul>\n\n<p><strong>Custom curated buttons:<\/strong>\n    [cpt_buttons]<\/p>\n\n<p>All buttons in saved order.<\/p>\n\n<pre><code>[cpt_buttons ids=\"3,1,2\"]\n<\/code><\/pre>\n\n<p>Specific buttons in a specific order.<\/p>\n\n\n\n<h4>Template Functions<\/h4>\n\n<p>For theme developers who prefer PHP over shortcodes:<\/p>\n\n<pre><code>cpt_popular_tags( $args )\n<\/code><\/pre>\n\n<p>Renders auto popular tags. Accepts an optional array to override admin defaults:<\/p>\n\n<pre><code>cpt_popular_tags( array(\n    'category_id' =&gt; 5,\n    'count'       =&gt; 6,\n    'title'       =&gt; 'Related Topics',\n) );\n\ncpt_custom_buttons( $args )\n<\/code><\/pre>\n\n<p>Renders the custom buttons created in Tab 1. Accepts an optional <code>ids<\/code> array to filter and reorder:<\/p>\n\n<pre><code>cpt_custom_buttons( array( 'ids' =&gt; array( 3, 1, 2 ) ) );\n<\/code><\/pre>\n\n\n\n<h4>Backwards Compatibility<\/h4>\n\n<p>If you were using the plugin before version 2.0, nothing breaks:<\/p>\n\n<ul>\n<li><code>[popular_category_tags]<\/code> and all its original attributes (<code>count<\/code>, <code>category_id<\/code>, <code>category_name<\/code>, <code>type<\/code>) work exactly as before.<\/li>\n<li>The legacy theme function <code>cush_category_popular_tag()<\/code> is still available as an alias for <code>cpt_popular_tags()<\/code>.<\/li>\n<li>Existing settings are automatically migrated on upgrade \u2014 no manual action required.<\/li>\n<\/ul>\n\n\n\n<h4>Credit<\/h4>\n\n<p>Popular tag query logic originally inspired by:\nhttps:\/\/wordpress.stackexchange.com\/questions\/261617\/display-most-popular-tags-of-category<\/p>\n\n<!--section=installation-->\n<p><strong>From the WordPress admin:<\/strong><\/p>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for \"Category Popular Tags\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Go to <strong>Settings \u2192 Category Tags<\/strong> to configure.<\/li>\n<\/ol>\n\n<p><strong>Manual upload:<\/strong><\/p>\n\n<ol>\n<li>Download the plugin zip file.<\/li>\n<li>Upload and extract it to <code>\/wp-content\/plugins\/category-popular-tags\/<\/code>.<\/li>\n<li>Activate through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Settings \u2192 Category Tags<\/strong> to configure.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"i%20just%20placed%20%5Bpopular_category_tags%5D%20on%20a%20regular%20page%20%E2%80%94%20nothing%20shows%20up.%20what%27s%20wrong%3F\"><h3>I just placed [popular_category_tags] on a regular page \u2014 nothing shows up. What's wrong?<\/h3><\/dt>\n<dd><p>Nothing is wrong. In version 2.0+ the shortcode automatically falls back to your site-wide most popular tags when it cannot detect a category. If you're seeing a blank result it means your posts have no tags at all yet. Add tags to some posts and the shortcode will display them.<\/p><\/dd>\n<dt id=\"how%20do%20i%20find%20a%20category%27s%20id%3F\"><h3>How do I find a category's ID?<\/h3><\/dt>\n<dd><p>Go to <strong>Posts \u2192 Categories<\/strong>, hover over the category name and look at the URL in your browser's status bar. You will see <code>tag_ID=5<\/code> \u2014 the number is the category ID. You can also use the preview tool in the <strong>Auto Popular Tags<\/strong> tab: select a category from the dropdown and the category-specific shortcode (with the ID already filled in) appears after loading the preview.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20custom%20buttons%20and%20auto%20popular%20tags%3F\"><h3>What is the difference between Custom Buttons and Auto Popular Tags?<\/h3><\/dt>\n<dd><p><strong>Auto Popular Tags<\/strong> are generated automatically by querying which tags appear most often on posts within a category (or site-wide). The list updates as your content changes (subject to the cache duration).<\/p>\n\n<p><strong>Custom Buttons<\/strong> are entirely hand-curated. You decide the label, the URL, and the icon. They never change unless you edit them in the admin. Use these when you want precise control \u2014 for example, a fixed \"Gifts Under \u00a320\" button that links to a specific tag or page regardless of what is trending.<\/p><\/dd>\n<dt id=\"how%20do%20i%20show%20tags%20for%20a%20specific%20category%20no%20matter%20what%20page%20the%20shortcode%20is%20on%3F\"><h3>How do I show tags for a specific category no matter what page the shortcode is on?<\/h3><\/dt>\n<dd><p>Use the <code>category_id<\/code> attribute: <code>[popular_category_tags category_id=\"5\"]<\/code>. This locks the shortcode to that category everywhere it appears.<\/p><\/dd>\n<dt id=\"can%20i%20display%20the%20tags%20automatically%20without%20a%20shortcode%3F\"><h3>Can I display the tags automatically without a shortcode?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Settings \u2192 Category Tags \u2192 Placement<\/strong>. Enable \"Auto-display on category archive pages\" and choose a position. You can also enable auto-display on tag archives, author archives, and (if WooCommerce is active) product category pages \u2014 all without touching any shortcode or theme file.<\/p><\/dd>\n<dt id=\"what%20does%20the%20%22after%20title%22%20position%20do%20and%20when%20should%20i%20use%20it%3F\"><h3>What does the \"After Title\" position do and when should I use it?<\/h3><\/dt>\n<dd><p>\"After Title\" injects the tags immediately below the category page heading using a small JavaScript snippet that runs when the page loads. Because it targets the heading element in the DOM rather than relying on a specific WordPress action hook, it works on virtually any theme \u2014 including those where \"Before Posts\" or \"After Posts\" cause layout problems. Use it when the other positions don't sit in the right place visually.<\/p><\/dd>\n<dt id=\"the%20tags%20aren%27t%20updating%20after%20i%20published%20new%20posts.%20why%3F\"><h3>The tags aren't updating after I published new posts. Why?<\/h3><\/dt>\n<dd><p>The plugin caches tag query results to avoid running expensive database lookups on every page view. The default cache duration is one day. You can shorten this in <strong>Settings \u2192 Category Tags \u2192 Auto Popular Tags \u2192 Cache Duration<\/strong>, or force an immediate refresh by saving the settings page (which clears all caches automatically).<\/p><\/dd>\n<dt id=\"how%20do%20i%20show%20a%20different%20number%20of%20tags%20in%20one%20place%20than%20another%3F\"><h3>How do I show a different number of tags in one place than another?<\/h3><\/dt>\n<dd><p>Use the <code>count<\/code> attribute in your shortcode: <code>[popular_category_tags count=\"10\"]<\/code>. This overrides the default count set in the admin for that specific instance only. The admin default is used whenever <code>count<\/code> is omitted.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20plugin%20in%20a%20page%20builder%20like%20elementor%20or%20divi%3F\"><h3>Can I use the plugin in a page builder like Elementor or Divi?<\/h3><\/dt>\n<dd><p>Yes. Both shortcodes (<code>[popular_category_tags]<\/code> and <code>[cpt_buttons]<\/code>) work in any shortcode-compatible widget or block. In Elementor use a <strong>Shortcode<\/strong> widget; in Divi use a <strong>Code<\/strong> module.<\/p><\/dd>\n<dt id=\"can%20i%20add%20the%20plugin%20output%20to%20my%20theme%20template%20files%20directly%3F\"><h3>Can I add the plugin output to my theme template files directly?<\/h3><\/dt>\n<dd><p>Yes. Use the PHP template functions:<\/p>\n\n<pre><code>cpt_popular_tags();\ncpt_custom_buttons();\n<\/code><\/pre>\n\n<p>Both functions accept an optional <code>$args<\/code> array. Place them in <code>category.php<\/code>, <code>archive.php<\/code>, <code>single.php<\/code>, or any other template file.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20without%20woocommerce%3F\"><h3>Does the plugin work without WooCommerce?<\/h3><\/dt>\n<dd><p>Completely. WooCommerce support is an optional layer that only activates when WooCommerce is installed and active. If WooCommerce is not present, the plugin behaves identically \u2014 the WooCommerce section simply does not appear in the Placement tab.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20slow%20down%20my%20site%3F\"><h3>Does the plugin slow down my site?<\/h3><\/dt>\n<dd><p>No. Tag query results are stored in WordPress transients (database-level cache) for the duration you configure. On cached requests there is no extra database query at all. The only time a query runs is when the cache has expired or been cleared.<\/p><\/dd>\n<dt id=\"my%20icon%20images%20look%20stretched%20or%20blurry.%20how%20do%20i%20fix%20this%3F\"><h3>My icon images look stretched or blurry. How do I fix this?<\/h3><\/dt>\n<dd><p>Go to <strong>Settings \u2192 Category Tags \u2192 Style<\/strong> and adjust the <strong>Icon Size<\/strong> slider to match the natural dimensions of your icon images. Square icons (equal width and height) always produce the cleanest result. The plugin uses <code>object-fit: contain<\/code> so images are never cropped, but if the icon size is much larger than the source image it may appear soft.<\/p><\/dd>\n<dt id=\"how%20do%20i%20reorder%20the%20custom%20buttons%3F\"><h3>How do I reorder the custom buttons?<\/h3><\/dt>\n<dd><p>In <strong>Settings \u2192 Category Tags \u2192 Custom Buttons<\/strong>, grab the drag handle (the grid icon on the left of each row) and drag the row up or down. Click <strong>Save Buttons<\/strong> when done. The new order is reflected everywhere <code>[cpt_buttons]<\/code> is used.<\/p><\/dd>\n<dt id=\"can%20i%20show%20only%20some%20of%20my%20custom%20buttons%20in%20a%20specific%20place%3F\"><h3>Can I show only some of my custom buttons in a specific place?<\/h3><\/dt>\n<dd><p>Yes. Each button has a numeric ID shown implicitly by its position. Use the <code>ids<\/code> attribute to specify which ones to show and in what order: <code>[cpt_buttons ids=\"2,5,1\"]<\/code>. The ID of each button is assigned when you save \u2014 you can find the generated shortcode on the Custom Buttons tab after saving.<\/p><\/dd>\n<dt id=\"the%20style%20changes%20i%20made%20aren%27t%20appearing%20on%20the%20front%20end.\"><h3>The style changes I made aren't appearing on the front end.<\/h3><\/dt>\n<dd><p>Try these in order: (1) save the Style tab again \u2014 this clears the style cache. (2) Hard-refresh your browser (Ctrl+Shift+R \/ Cmd+Shift+R). (3) If you use a caching plugin (WP Super Cache, W3 Total Cache, LiteSpeed Cache, etc.) purge its cache after saving. The plugin outputs styles inline and scoped to each button container, so theme stylesheet caching should not interfere, but page-level caches will serve the old HTML until purged.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20multisite%3F\"><h3>Is this plugin compatible with multisite?<\/h3><\/dt>\n<dd><p>The plugin stores settings per-site using standard <code>get_option<\/code> \/ <code>update_option<\/code> calls, so it works correctly on WordPress multisite. Each site in the network has its own independent settings and button lists.<\/p><\/dd>\n<dt id=\"will%20this%20plugin%20affect%20my%20site%27s%20seo%3F\"><h3>Will this plugin affect my site's SEO?<\/h3><\/dt>\n<dd><p>Tag links rendered by the plugin are standard <code>&lt;a href&gt;<\/code> elements pointing to your tag archive URLs. They are follow links by default, which means search engines can crawl them. If you want to prevent specific tag archives from being indexed, manage that through your SEO plugin (Yoast, Rank Math, etc.) \u2014 it is outside the scope of this plugin.<\/p><\/dd>\n<dt id=\"how%20do%20i%20uninstall%20the%20plugin%20cleanly%3F\"><h3>How do I uninstall the plugin cleanly?<\/h3><\/dt>\n<dd><p>Deactivate the plugin, then click <strong>Delete<\/strong> on the Plugins screen. The plugin's <code>uninstall.php<\/code> will automatically remove all options (<code>cpt_options<\/code>, <code>cpt_custom_buttons<\/code>) and all cached transients from the database. Nothing is left behind.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete rewrite \u2014 consistent naming, professional code quality throughout<\/li>\n<li>New: tabbed admin panel with four dedicated tabs<\/li>\n<li>New: Custom Buttons builder \u2014 icon upload, label, URL, drag-to-reorder<\/li>\n<li>New: global Style tab \u2014 16 visual controls with real-time live preview<\/li>\n<li>New: Placement tab \u2014 auto-inject on category, tag, and author archives<\/li>\n<li>New: \"After Title\" placement position via JavaScript DOM injection<\/li>\n<li>New: WooCommerce product category page support (auto-detected)<\/li>\n<li>New: <code>[cpt_buttons]<\/code> shortcode and <code>ids<\/code> attribute for selective display<\/li>\n<li>New: <code>cpt_popular_tags()<\/code> and <code>cpt_custom_buttons()<\/code> theme template functions<\/li>\n<li>New: site-wide popular tags fallback when no category context is detected<\/li>\n<li>New: configurable cache duration replacing hard-coded transient expiry<\/li>\n<li>New: AJAX save on all forms \u2014 no full page reload required<\/li>\n<li>New: category preview with auto-generated copy-ready shortcode suggestion<\/li>\n<li>New: copy-to-clipboard button on all shortcode references<\/li>\n<li>Fix: <code>extract()<\/code> security risk removed \u2014 attributes now handled explicitly<\/li>\n<li>Fix: PHP parse error in shortcode class (<code>else<\/code> block outside <code>if<\/code>)<\/li>\n<li>Fix: transient key collision between categories with the same name resolved<\/li>\n<li>Fix: stylesheet version was <code>time()<\/code> on every request \u2014 now uses plugin version<\/li>\n<li>Fix: <code>register_deactivation_hook<\/code> now uses <code>$wpdb-&gt;options<\/code> instead of hard-coded table name<\/li>\n<li>Backwards compatible: all v1.0 shortcodes, attributes, and theme functions preserved<\/li>\n<li>New: <code>uninstall.php<\/code> \u2014 clean database removal on plugin delete<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Display styled popular tag buttons on any page or archive. Full visual control from the admin. Works via shortcode, automatic placement, or theme func &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/110909","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=110909"}],"author":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kusimo"}],"wp:attachment":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=110909"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=110909"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=110909"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=110909"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=110909"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=110909"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}