{"id":549,"date":"2012-06-12T11:52:28","date_gmt":"2012-06-12T11:52:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/categories-images\/"},"modified":"2026-04-05T18:10:02","modified_gmt":"2026-04-05T18:10:02","slug":"categories-images","status":"publish","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/categories-images\/","author":8129845,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"3.3.2","stable_tag":"3.3.2","tested":"6.9.4","requires":"4.0","requires_php":"","requires_plugins":null,"header_name":"Categories Images","header_author":"Muhammad El Zahlan","header_description":"","assets_banners_color":"333333","last_updated":"2026-04-05 18:10:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/zahlan.net\/blog\/categories-images\/","header_author_uri":"https:\/\/zahlan.net\/","rating":4.5,"author_block_rating":0,"active_installs":50000,"downloads":904824,"num_ratings":85,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"elzahlan","date":"2013-06-15 08:50:28"},"1.1":{"tag":"1.1","author":"elzahlan","date":"2013-06-15 08:50:28"},"1.2":{"tag":"1.2","author":"elzahlan","date":"2013-06-15 08:50:28"},"2.0":{"tag":"2.0","author":"elzahlan","date":"2013-06-15 08:50:28"},"2.1":{"tag":"2.1","author":"elzahlan","date":"2013-06-15 08:50:28"},"2.2":{"tag":"2.2","author":"elzahlan","date":"2013-06-15 08:50:28"},"2.2.1":{"tag":"2.2.1","author":"elzahlan","date":"2013-06-15 08:50:28"},"2.2.2":{"tag":"2.2.2","author":"elzahlan","date":"2013-06-15 08:50:28"},"2.2.3":{"tag":"2.2.3","author":"elzahlan","date":"2013-06-15 08:50:28"},"2.2.4":{"tag":"2.2.4","author":"elzahlan","date":"2013-06-15 08:50:28"},"2.3":{"tag":"2.3","author":"elzahlan","date":"2013-06-15 08:50:28"},"2.3.1":{"tag":"2.3.1","author":"elzahlan","date":"2013-09-10 08:39:14"},"2.3.2":{"tag":"2.3.2","author":"elzahlan","date":"2013-09-13 09:59:06"},"2.4":{"tag":"2.4","author":"elzahlan","date":"2013-12-20 16:35:30"},"2.4.1":{"tag":"2.4.1","author":"elzahlan","date":"2013-12-21 17:17:30"},"2.4.2":{"tag":"2.4.2","author":"elzahlan","date":"2014-05-21 15:12:23"},"2.5":{"tag":"2.5","author":"elzahlan","date":"2015-08-20 07:46:41"},"2.5.1":{"tag":"2.5.1","author":"elzahlan","date":"2015-09-29 00:59:42"},"2.5.2":{"tag":"2.5.2","author":"elzahlan","date":"2015-11-13 22:12:26"},"2.5.3":{"tag":"2.5.3","author":"elzahlan","date":"2016-12-08 10:51:01"},"2.5.4":{"tag":"2.5.4","author":"elzahlan","date":"2018-01-15 17:41:27"},"3.0.0":{"tag":"3.0.0","author":"elzahlan","date":"2020-04-04 17:14:08"},"3.0.1":{"tag":"3.0.1","author":"elzahlan","date":"2021-05-23 13:34:02"},"3.1.0":{"tag":"3.1.0","author":"elzahlan","date":"2024-10-29 14:38:09"},"3.2.0":{"tag":"3.2.0","author":"elzahlan","date":"2025-12-17 04:29:49"},"3.3.0":{"tag":"3.3.0","author":"elzahlan","date":"2025-12-19 18:17:14"},"3.3.1":{"tag":"3.3.1","author":"elzahlan","date":"2025-12-21 00:35:05"},"3.3.2":{"tag":"3.3.2","author":"elzahlan","date":"2026-04-05 18:10:02"}},"upgrade_notice":[],"ratings":{"1":6,"2":4,"3":1,"4":8,"5":66},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2256871,"resolution":"128x128","location":"assets","locale":""}},"assets_banners":{"banner-772x250-old.png":{"filename":"banner-772x250-old.png","revision":1803373,"resolution":"772x250","location":"assets","locale":"old"},"banner-772x250.png":{"filename":"banner-772x250.png","revision":1803373,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.1","1.2","2.0","2.1","2.2","2.2.1","2.2.2","2.2.3","2.2.4","2.3","2.3.1","2.3.2","2.4","2.4.1","2.4.2","2.5","2.5.1","2.5.2","2.5.3","2.5.4","3.0.0","3.0.1","3.1.0","3.2.0","3.3.0","3.3.1","3.3.2"],"block_files":[],"assets_screenshots":{"screenshot-2.png":{"filename":"screenshot-2.png","revision":3499276,"resolution":"2","location":"plugin"},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3499276,"resolution":"5","location":"plugin"},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3499276,"resolution":"4","location":"plugin"},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3499276,"resolution":"3","location":"plugin"},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3499276,"resolution":"6","location":"plugin"},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3499276,"resolution":"1","location":"plugin"}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[16332,13359,252524,37727,16333],"plugin_category":[50,57],"plugin_contributors":[78219],"plugin_business_model":[],"class_list":["post-549","plugin","type-plugin","status-publish","hentry","plugin_tags-categories-images","plugin_tags-category-image","plugin_tags-category-thumb","plugin_tags-tag-image","plugin_tags-taxonomy-image","plugin_category-media","plugin_category-taxonomy","plugin_contributors-elzahlan","plugin_committers-elzahlan"],"banners":{"banner":"https:\/\/ps.w.org\/categories-images\/assets\/banner-772x250.png?rev=1803373","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/categories-images\/assets\/icon-128x128.png?rev=2256871","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/categories-images\/trunk\/screenshot-1.png?rev=3499276","caption":""},{"src":"https:\/\/ps.w.org\/categories-images\/trunk\/screenshot-2.png?rev=3499276","caption":""},{"src":"https:\/\/ps.w.org\/categories-images\/trunk\/screenshot-3.png?rev=3499276","caption":""},{"src":"https:\/\/ps.w.org\/categories-images\/trunk\/screenshot-4.png?rev=3499276","caption":""},{"src":"https:\/\/ps.w.org\/categories-images\/trunk\/screenshot-5.png?rev=3499276","caption":""},{"src":"https:\/\/ps.w.org\/categories-images\/trunk\/screenshot-6.png?rev=3499276","caption":""}],"raw_content":"<!--section=description-->\n<p>The Categories Images is a Wordpress plugin allow you to add image to category, tag or custom taxonomy.<\/p>\n\n<p>Use <code>&lt;?php if (function_exists('z_taxonomy_image_url')) echo z_taxonomy_image_url(); ?&gt;<\/code> to get the url and put it in any img tag.\nOr simply use <code>&lt;?php if (function_exists('z_taxonomy_image')) z_taxonomy_image(); ?&gt;<\/code> in (category or taxonomy) template.<\/p>\n\n<h4>REST API Support<\/h4>\n\n<p>Access term images via the WP REST API. The field <code>z_taxonomy_image_url<\/code> is automatically added to term objects.<\/p>\n\n<h4>Enhanced Shortcodes<\/h4>\n\n<ul>\n<li><code>[z_taxonomy_image term_id=\"123\" size=\"medium\" link=\"yes\"]<\/code> - Display a specific term image with a link.<\/li>\n<li><code>[z_taxonomy_list taxonomy=\"category\" style=\"grid\" columns=\"4\" show_name=\"yes\"]<\/code> - Display a beautiful grid of terms with their images.<\/li>\n<\/ul>\n\n<h4>Elementor Integration<\/h4>\n\n<p>Use term images dynamically in Elementor via the native Dynamic Tags system.<\/p>\n\n<h4>Settings<\/h4>\n\n<p>Categories Images settings menu is now under Settings &gt; Categories Images to avoid cluttering the main WordPress menu, the settings now is more organized with a dedicated documentation page that includes usage examples and shortcodes.<\/p>\n\n<p>From the settings menu, you can exclude any taxonomies from the plugin to avoid conflicts with other plugins like WooCommerce!<\/p>\n\n<h3>Documentation<\/h3>\n\n<p>Documentation is now available inside the plugin settings menu. for more information please visit the <a href=\"https:\/\/zahlan.net\/blog\/2012\/06\/categories-images\/\">Categories Images<\/a>.<\/p>\n\n<!--section=installation-->\n<p>You can install Categories Images directly from the WordPress admin panel:<\/p>\n\n<ol>\n<li>Visit the Plugins &gt; Add New and search for 'Categories Images'.<\/li>\n<li>Click to install.<\/li>\n<li>Once installed, activate and it is functional.<\/li>\n<\/ol>\n\n<p>OR<\/p>\n\n<p>Manual Installation:<\/p>\n\n<ol>\n<li>Download the plugin, then extract it.<\/li>\n<li>Upload <code>categories-images<\/code> extracted folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<\/ol>\n\n<p>You're done! The plugin is ready to use, for more information please check the plugin description or settings page.<\/p>\n\n<!--section=faq-->\n<p>Please check the documentation page:\nhttps:\/\/zahlan.net\/blog\/2012\/06\/categories-images\/<\/p>\n\n<!--section=changelog-->\n<h4>3.3.2<\/h4>\n\n<ul>\n<li>Security release: Fixed an authenticated Stored XSS vulnerability in the <code>[z_taxonomy_image]<\/code> shortcode (CVE-2026-2505).<\/li>\n<li>General security hardening: Implemented strict \"Escape on Output\" for all dynamic strings to comply with WordPress.org coding standards.<\/li>\n<li>Refactor: Replaced direct database queries with core WordPress functions to resolve Plugin Check warnings.<\/li>\n<li>Maintenance: Verified compatibility to WordPress 6.9.4 and aligned with strict WordPress.org plugin directory standards.<\/li>\n<\/ul>\n\n<h4>3.3.1<\/h4>\n\n<ul>\n<li>Fixed a potential fatal error during REST API initialization.<\/li>\n<\/ul>\n\n<h4>3.3.0<\/h4>\n\n<ul>\n<li>Added native Elementor Dynamic Tag support for taxonomy images.<\/li>\n<li>Integrated with WordPress REST API (adds <code>z_taxonomy_image_url<\/code> to term responses).<\/li>\n<li>Major shortcode overhaul:\n\n<ul>\n<li>Enhanced <code>[z_taxonomy_image]<\/code> with custom links, placeholders, and size support.<\/li>\n<li>Enhanced <code>[z_taxonomy_list]<\/code> with grid\/list layouts, column control, and conditional name\/count display.<\/li>\n<\/ul><\/li>\n<li>Performance: Modern PHP array syntax refactor and optimized asset versioning.<\/li>\n<li>Fixed frontend CSS loading for shortcode grids.<\/li>\n<li>Categories Images settings menu is now under Settings &gt; Categories Images to avoid cluttering the main WordPress menu, the settings now is more organized with a dedicated documentation page that includes usage examples and shortcodes.<\/li>\n<\/ul>\n\n<h4>3.2.0<\/h4>\n\n<ul>\n<li>Fix wp_options bloat issues by migrating to Term Meta API (wp_termmeta) for WP 4.4+.<\/li>\n<li>Backward compatibility for WP &lt; 4.4 maintained via wp_options fallback.<\/li>\n<li>Improved performance by implementing Singleton pattern to reduce class instantiation overhead.<\/li>\n<li>Security enhancements (nonce verification, input sanitization).<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>Added DE translation, thanks to denarie.<\/li>\n<li>Start using imageId instead of imageUrl to solve any the CDN issues, thanks so alessandrocarrera.<\/li>\n<li>Tested with the latest version of wordpress<\/li>\n<\/ul>\n\n<h4>3.0.1<\/h4>\n\n<ul>\n<li>Disable options autoload to enhance wordpress queries performace<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Fix settings page issues<\/li>\n<li>Fix compatibility with the latest Wordpress version<\/li>\n<li>Rewrote the whole plugin from scratch, now the code is much efficient, readable and cleaner<\/li>\n<\/ul>\n\n<h4>2.5.4<\/h4>\n\n<ul>\n<li>Fix compatibility with the latest Wordpress version<\/li>\n<\/ul>\n\n<h4>2.5.3<\/h4>\n\n<ul>\n<li>Fix not displaying single tag image bug in tag.php template<\/li>\n<li>Adding language support for Swedish. Thanks to Simon Sandgren<\/li>\n<\/ul>\n\n<h4>2.5.2<\/h4>\n\n<ul>\n<li>Fix displaying full size image bug in backend<\/li>\n<li>Fix quick edit bug<\/li>\n<li>Some code enhancements<\/li>\n<\/ul>\n\n<h4>2.5.1<\/h4>\n\n<ul>\n<li>Adding language support for Russian.<\/li>\n<li>Adding language support for Serbian. Thanks to Andrijana Nikolic.<\/li>\n<li>Adding language support for Catalan. Thanks to Marc Queralt.<\/li>\n<li>Change the plugin text domain from zci to categories-images to match the plugin slug as requested by Wordpress.<\/li>\n<\/ul>\n\n<h4>2.5<\/h4>\n\n<ul>\n<li>Adding language support for Ukrainian. Thanks to Michael Yunat.<\/li>\n<li>Adding new function z_taxonomy_image() to display category or taxonomy image directly with support for size, alt and other attributes, for and how to use it please check the documentations.<\/li>\n<li>Some code enhancements.<\/li>\n<\/ul>\n\n<h4>2.4.2<\/h4>\n\n<ul>\n<li>Update code to reduce db queries. Thanks to fburatti.<\/li>\n<\/ul>\n\n<h4>2.4.1<\/h4>\n\n<ul>\n<li>Fix placeholder bug in backend.<\/li>\n<\/ul>\n\n<h4>2.4<\/h4>\n\n<ul>\n<li>Adding language support for Spanish (Thansk so much to Maria Ramos).<\/li>\n<li>Adding support for resizing categories images (Thanks so much to Rahil Wazir).<\/li>\n<li>Some code enhancements.<\/li>\n<\/ul>\n\n<h4>2.3.2<\/h4>\n\n<ul>\n<li>Adding language support for French.<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Bug fix in js for Wordpress media uploader.<\/li>\n<\/ul>\n\n<h4>2.3<\/h4>\n\n<ul>\n<li>New screenshots.<\/li>\n<li>Updated language file.<\/li>\n<li>Added support for both old and new Wordpress media uploader.<\/li>\n<li>Added new submenu (Categories Images) in Settings menu.<\/li>\n<li>Added new settings for excluding any taxonomies from the plugin.<\/li>\n<li>Added new placeholder image.<\/li>\n<\/ul>\n\n<p>Thanks to Patrick and Hassan for the new ideas.<\/p>\n\n<h4>2.2.4<\/h4>\n\n<ul>\n<li>java script bug fixed, reported about conflicting with WooCommerce plugin. Thanks to Marty McGee.<\/li>\n<\/ul>\n\n<h4>2.2.3<\/h4>\n\n<ul>\n<li>bug fix in displaying category or taxonomy image at the frontend.<\/li>\n<\/ul>\n\n<h4>2.2.2<\/h4>\n\n<ul>\n<li>bug fix in displaying placeholder image in wp-admin.<\/li>\n<\/ul>\n\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>edit z_taxonomy_image_url() to only return data in case the user inserted image for the selected category or taxonomy<\/li>\n<\/ul>\n\n<h4>2.2<\/h4>\n\n<ul>\n<li>fix a bug, prevent a function from running execpt when editing a category or taxonomy to avoid affecting other wordpress edit pages in the wp-admin<\/li>\n<\/ul>\n\n<h4>2.1<\/h4>\n\n<ul>\n<li>fix a bug in languages<\/li>\n<li>fix a bug in quick edit category or taxonomy<\/li>\n<\/ul>\n\n<h4>2.0<\/h4>\n\n<ul>\n<li>New screenshots.<\/li>\n<li>Added l10n support.<\/li>\n<li>Added Arabic and Chinese languages.<\/li>\n<li>Added new button for upload or select an image using wordpress media uploader.<\/li>\n<li>Added default image placeholder.<\/li>\n<li>Added thumbnail in categories or taxonomies list.<\/li>\n<li>Added image thumbnail, image text box, upload button and remove button in quick edit.<\/li>\n<\/ul>\n\n<p>Thank so much to Joe Tse<\/p>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Adding some screenshots<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Fix javascript bug with wordpress 3.4<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>The First Release<\/li>\n<\/ul>","raw_excerpt":"The Categories Images is a Wordpress plugin allow you to add image to category, tag or custom taxonomy.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=549"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/elzahlan"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=549"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=549"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=549"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=549"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=549"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}