{"id":218232,"date":"2025-01-12T22:54:26","date_gmt":"2025-01-12T22:54:26","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/category-description-for-woocommerce\/"},"modified":"2026-05-25T12:05:36","modified_gmt":"2026-05-25T12:05:36","slug":"category-description-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/it.wordpress.org\/plugins\/category-description-for-woocommerce\/","author":14637393,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.0","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Category Description for WooCommerce","header_author":"Slobodan Pantovic","header_description":"Adds an option to customize the display of product category descriptions on WooCommerce archive pages.","assets_banners_color":"","last_updated":"2026-05-25 12:05:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/category-description-for-woocommerce\/","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":500,"downloads":2434,"num_ratings":2,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"tihi","date":"2025-05-10 18:24:46"},"1.1.0":{"tag":"1.1.0","author":"tihi","date":"2026-04-13 14:44:34"},"2.0.0":{"tag":"2.0.0","author":"tihi","date":"2026-05-25 12:05:36"}},"upgrade_notice":{"2.0.0":"<p>Requires PHP 7.4+. Do not update if running PHP 7.0-7.3. After updating, refresh open category edit pages. CSS selector changed: .cdfwsp_category_desription_excerpt .cdfwsp_load-more-button to .custom-category-description .cdfwsp_load-more-button<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128\u00d7128.png":{"filename":"icon-128\u00d7128.png","revision":3224586,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256\u00d7256.png":{"filename":"icon-256\u00d7256.png","revision":3224586,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3505287,"resolution":"1","location":"assets","locale":"","width":955,"height":1505},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3221258,"resolution":"2","location":"assets","locale":"","width":1482,"height":680}},"screenshots":{"1":"Configure the display and formatting options for your product category descriptions.","2":"Category description on the product category archive page."}},"plugin_section":[],"plugin_tags":[89,264307,746],"plugin_category":[45,55],"plugin_contributors":[231089],"plugin_business_model":[],"class_list":["post-218232","plugin","type-plugin","status-publish","hentry","plugin_tags-category","plugin_tags-category-description-seo-woocommerce","plugin_tags-product","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-tihi","plugin_committers-tihi"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/category-description-for-woocommerce\/assets\/icon-128\u00d7128.png?rev=3224586","icon_2x":"https:\/\/ps.w.org\/category-description-for-woocommerce\/assets\/icon-256\u00d7256.png?rev=3224586","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/category-description-for-woocommerce\/assets\/screenshot-1.jpg?rev=3505287","caption":"Configure the display and formatting options for your product category descriptions."},{"src":"https:\/\/ps.w.org\/category-description-for-woocommerce\/assets\/screenshot-2.jpg?rev=3221258","caption":"Category description on the product category archive page."}],"raw_content":"<!--section=description-->\n<p><strong>Category Description for WooCommerce<\/strong> allows WooCommerce store owners to customize how product category descriptions are displayed.\nWith advanced options for positioning and formatting, you can better showcase your products and improve SEO optimization.<\/p>\n\n<p><strong>Key Features:<\/strong>\n- Add custom descriptions for each product category.\n- Position descriptions above products (full text or excerpt).\n- Position descriptions below products.\n- Combine above and below positions with full and excerpt views.\n- Use a \"Load More\" button to expand excerpted descriptions.\n- Seamless integration with block-based (FSE) and classic themes.\n- Avoid duplicate content with customizable display options.\n- Edit descriptions easily with the WordPress editor.\n- Use the <code>[cdfwsp_split]<\/code> marker to define an exact split point in the description, overriding the word limit.\n- Use the <code>[cdfwsp_category_description]<\/code> shortcode to display descriptions anywhere: page builders, custom templates, or theme files.<\/p>\n\n<p><strong>Why Choose This Plugin?<\/strong>\nEnhance user experience and SEO by having full control over the display of your WooCommerce product category descriptions.\nThis plugin is lightweight, easy to use, and works seamlessly with most WordPress themes.<\/p>\n\n<h3>Shortcode Reference<\/h3>\n\n<p><strong><code>[cdfwsp_category_description]<\/code><\/strong><\/p>\n\n<p>Display a product category description anywhere on your site \u2014 page builders, custom templates, or theme files. Works independently of the admin Display Option setting.<\/p>\n\n<h4>Attributes<\/h4>\n\n<p><strong>part<\/strong> (default: <code>full<\/code>)<\/p>\n\n<p>Controls which part of the description to output:<\/p>\n\n<ul>\n<li><code>full<\/code> \u2014 complete description (<code>[cdfwsp_split]<\/code> marker stripped from output).<\/li>\n<li><code>excerpt<\/code> \u2014 excerpt part only (before the split point or word limit).<\/li>\n<li><code>rest<\/code> \u2014 remainder part only (after the split point). Renders with a targetable anchor <code>id<\/code> for use with <code>excerpt_anchor<\/code>.<\/li>\n<li><code>excerpt_toggle<\/code> \u2014 excerpt with a Load More button that reveals the full description. JavaScript is loaded automatically.<\/li>\n<li><code>excerpt_anchor<\/code> \u2014 excerpt with an anchor link pointing to a <code>part=\"rest\"<\/code> shortcode placed elsewhere on the page. No JavaScript required.<\/li>\n<\/ul>\n\n<p><strong>id<\/strong> (optional) \u2014 product category ID. Takes priority over <code>slug<\/code>.<\/p>\n\n<p><strong>slug<\/strong> (optional) \u2014 product category slug.<\/p>\n\n<p><strong>taxonomy<\/strong> (optional) \u2014 restrict lookup to a specific taxonomy (default: <code>product_cat<\/code>).<\/p>\n\n<p><strong>class<\/strong> (optional) \u2014 add a custom CSS class to the wrapper div.<\/p>\n\n<p><strong>limit<\/strong> (optional) \u2014 override the excerpt word or character limit for this shortcode instance.<\/p>\n\n<p><strong>limit_type<\/strong> (optional) \u2014 override the limit type: <code>words<\/code> or <code>characters<\/code>.<\/p>\n\n<p><strong>show_read_less<\/strong> (optional) \u2014 show or hide the Read Less button: <code>1<\/code> = yes, <code>0<\/code> = no.<\/p>\n\n<p><strong>load_more_text<\/strong> (optional) \u2014 override the Load More button text for this shortcode instance.<\/p>\n\n<p>If neither <code>id<\/code> nor <code>slug<\/code> is provided, the shortcode auto-detects the category from the current archive page.<\/p>\n\n<p>When using multiple attributes, place them all inside the same shortcode tag separated by spaces \u2014 not commas:<\/p>\n\n<pre><code>[cdfwsp_category_description part=\"excerpt_toggle\" limit=\"50\" class=\"my-desc\"]\n<\/code><\/pre>\n\n<h4>Examples<\/h4>\n\n<p>Display the full description on the current archive page:<\/p>\n\n<pre><code>[cdfwsp_category_description]\n<\/code><\/pre>\n\n<p>Excerpt with a Load More button on the current archive page:<\/p>\n\n<pre><code>[cdfwsp_category_description part=\"excerpt_toggle\"]\n<\/code><\/pre>\n\n<p>Excerpt with a Load More button for a specific category:<\/p>\n\n<pre><code>[cdfwsp_category_description part=\"excerpt_toggle\" slug=\"clothing\"]\n<\/code><\/pre>\n\n<p>Split view \u2014 excerpt above products, full text below (no JavaScript):<\/p>\n\n<pre><code>[cdfwsp_category_description part=\"excerpt_anchor\"] (place above products)\n[cdfwsp_category_description part=\"rest\"] (place below products)&lt;h3&gt;Support&lt;\/h3&gt;\n<\/code><\/pre>\n\n<p>If you have any questions, issues, or suggestions, please post them on the WordPress.org support forum.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Download and install the plugin directly from the WordPress.org repository, or upload it through the WordPress admin panel.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Edit product category descriptions through the WooCommerce products categories admin screen.<\/li>\n<li>Configure settings for description display as needed.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20work%20with%20any%20woocommerce%20theme%3F\"><h3>Does this plugin work with any WooCommerce theme?<\/h3><\/dt>\n<dd><p>Yes, the plugin is designed to work with all WooCommerce-compatible themes, including block-based (FSE) and classic themes.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20plugin%20to%20improve%20my%20seo%3F\"><h3>Can I use this plugin to improve my SEO?<\/h3><\/dt>\n<dd><p>By customizing category descriptions, you can add unique and relevant content that improves search engine visibility.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20affect%20website%20performance%3F\"><h3>Does this plugin affect website performance?<\/h3><\/dt>\n<dd><p>No, the plugin is lightweight and optimized to ensure minimal impact on performance.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20translation-ready%3F\"><h3>Is the plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes, the plugin is fully translation-ready.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>NEW: Shortcode supports additional attributes \u2014 <code>class<\/code>, <code>limit<\/code>, <code>limit_type<\/code>, <code>show_read_less<\/code>, <code>load_more_text<\/code> \u2014 for per-instance control without changing category settings<\/li>\n<li>NEW: Shortcode now falls back to global settings for categories with no per-category configuration<\/li>\n<li>NEW: Global default settings page under WooCommerce &gt; Category Descriptions<\/li>\n<li>NEW: Global CSS customization (colors, font size, line height, padding, margin) via CSS custom properties<\/li>\n<li>NEW: Limit type \u2014 choose between word count and character count for excerpts<\/li>\n<li>NEW: \"Read Less\" button collapses expanded descriptions (disabled by default)<\/li>\n<li>NEW: Per-category option to hide Load More button and Scroll-to-Top button (above+below layout)<\/li>\n<li>NEW: Automatic support for custom hierarchical product taxonomies<\/li>\n<li>BREAKING: Minimum PHP version raised to 7.4<\/li>\n<li>BREAKING: Load More button moved outside the excerpt container \u2014 update CSS selector from <code>.cdfwsp_category_desription_excerpt .cdfwsp_load-more-button<\/code> to <code>.custom-category-description .cdfwsp_load-more-button<\/code><\/li>\n<li>REFACTOR: Shared utility class CDFWSP_Utils eliminates code duplication<\/li>\n<li>FIX: Nonce action name typo corrected; backward compatibility maintained for admin pages open during upgrade<\/li>\n<li>FIX: Multiple Load More buttons on same page now work independently<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fix: load_plugin_textdomain() called with incorrect first argument \u2014 translations were not loading.<\/li>\n<li>Fix: sanitize_callback in register_meta() referenced non-existent method name.<\/li>\n<li>Fix: Trailing space in nonce hidden field value.<\/li>\n<li>Fix: Unclosed div#bottom_text in above_excerpt_below_full display mode.<\/li>\n<li>Fix: Asset version now uses plugin version constant instead of hardcoded string.<\/li>\n<li>Fix: Missing current_user_can() authorization check in save_category_fields().<\/li>\n<li>Fix: display_option field now validated against allowed values (whitelist).<\/li>\n<li>Fix: REST API schema now lists correct display_option enum values.<\/li>\n<li>Fix: above_products_full display mode now respects FSE vs. classic theme hook position, consistent with other display options.<\/li>\n<li>Fix: Word Limit fallback now correctly compares against word count.<\/li>\n<li>Fix: Load More text splitting now uses substr() to prevent text corruption when excerpt text appears multiple times in the description.<\/li>\n<li>Fix: Multiple [cdfwsp_category_description part=\"excerpt_toggle\"] shortcodes on the same page now all work independently.<\/li>\n<li>Feature: Added <code>[cdfwsp_split]<\/code> marker \u2014 place it anywhere in the category description to define the exact split point for Load More and \"Above + Below\" display options. The marker takes priority over the Word Limit setting and is never visible to visitors.<\/li>\n<li>Feature: Added <code>[cdfwsp_category_description]<\/code> shortcode \u2014 display the category description anywhere: page builders, custom templates, or theme files. Supports full, excerpt, rest, excerpt_toggle, and excerpt_anchor output parts.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Customize WooCommerce category descriptions with flexible display and formatting options to improve product visibility and boost SEO performance.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/218232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=218232"}],"author":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tihi"}],"wp:attachment":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=218232"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=218232"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=218232"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=218232"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=218232"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=218232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}