{"id":284418,"date":"2026-02-26T05:26:17","date_gmt":"2026-02-26T05:26:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/widget-visibility-with-descendants\/"},"modified":"2026-03-07T20:57:19","modified_gmt":"2026-03-07T20:57:19","slug":"cybokron-advanced-widget-visibility","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/cybokron-advanced-widget-visibility\/","author":10016074,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.9.0","stable_tag":"1.9.0","tested":"6.9.4","requires":"5.2","requires_php":"7.4","requires_plugins":null,"header_name":"Cybokron Advanced Widget Visibility","header_author":"Ercan ATAY","header_description":"Control widget visibility based on pages, posts, categories with full descendant (grandchildren) support. A Jetpack-free alternative that includes ALL levels of nested pages.","assets_banners_color":"1e6b80","last_updated":"2026-03-07 20:57:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/ercanatay\/cybokron-advanced-widget-visibility","header_author_uri":"https:\/\/www.ercanatay.com\/en\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":337,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.8.0":{"tag":"1.8.0","author":"cybokron","date":"2026-02-26 05:38:12"},"1.9.0":{"tag":"1.9.0","author":"cybokron","date":"2026-03-07 20:57:19"}},"upgrade_notice":{"1.9.0":"<p>Maintenance release: fixes GitHub Actions deploy workflow references after the 1.8.0 rebrand.<\/p>","1.8.0":"<p>WordPress.org compliance: text domain, file name, and all prefixes aligned to plugin slug. Fresh install recommended.<\/p>","1.7.0":"<p>New settings page with global bypass, configurable rule limits, and uninstall data cleanup option.<\/p>","1.6.0":"<p>Plugin rebranded to &quot;Cybokron Advanced Widget Visibility&quot;. No functional changes.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3477173,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3477173,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3477173,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3477173,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.8.0","1.9.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3477173,"resolution":"1","location":"assets","locale":"","width":1728,"height":1338},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3477173,"resolution":"2","location":"assets","locale":"","width":988,"height":1032},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3477173,"resolution":"3","location":"assets","locale":"","width":984,"height":1020},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3477173,"resolution":"4","location":"assets","locale":"","width":968,"height":1312}},"screenshots":{"1":"Visibility panel with Show\/Hide dropdown, condition types, and descendant options","2":"Multiple conditions with AND\/OR logic support","3":"Page hierarchy with descendant matching"}},"plugin_section":[],"plugin_tags":[2869,256625,243,6309,162],"plugin_category":[43],"plugin_contributors":[256003],"plugin_business_model":[],"class_list":["post-284418","plugin","type-plugin","status-publish","hentry","plugin_tags-descendants","plugin_tags-grandchildren","plugin_tags-pages","plugin_tags-visibility","plugin_tags-widget","plugin_category-customization","plugin_contributors-cybokron","plugin_committers-cybokron"],"banners":{"banner":"https:\/\/ps.w.org\/cybokron-advanced-widget-visibility\/assets\/banner-772x250.png?rev=3477173","banner_2x":"https:\/\/ps.w.org\/cybokron-advanced-widget-visibility\/assets\/banner-1544x500.jpg?rev=3477173","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cybokron-advanced-widget-visibility\/assets\/icon-128x128.png?rev=3477173","icon_2x":"https:\/\/ps.w.org\/cybokron-advanced-widget-visibility\/assets\/icon-256x256.png?rev=3477173","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cybokron-advanced-widget-visibility\/assets\/screenshot-1.png?rev=3477173","caption":"Visibility panel with Show\/Hide dropdown, condition types, and descendant options"},{"src":"https:\/\/ps.w.org\/cybokron-advanced-widget-visibility\/assets\/screenshot-2.png?rev=3477173","caption":"Multiple conditions with AND\/OR logic support"},{"src":"https:\/\/ps.w.org\/cybokron-advanced-widget-visibility\/assets\/screenshot-3.png?rev=3477173","caption":"Page hierarchy with descendant matching"},{"src":"https:\/\/ps.w.org\/cybokron-advanced-widget-visibility\/assets\/screenshot-4.png?rev=3477173","caption":""}],"raw_content":"<!--section=description-->\n<p>Jetpack's Widget Visibility only supports \"Include children\" which covers direct children (1 level deep). It doesn't include grandchildren, great-grandchildren, or deeper nested pages.<\/p>\n\n<p>This plugin adds an <strong>\"Include all descendants\"<\/strong> option that includes ALL levels of nested pages \u2014 grandchildren, great-grandchildren, and beyond.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Show\/Hide widgets based on conditions<\/li>\n<li>Page visibility with full descendant support<\/li>\n<li>Category visibility with hierarchy support<\/li>\n<li>Hierarchical custom taxonomy visibility with descendant support<\/li>\n<li>Post type conditions<\/li>\n<li>Special pages: Front page, Blog, Archive, Search, 404<\/li>\n<li>User role targeting (any selected role)<\/li>\n<li>User state: Logged in \/ Logged out<\/li>\n<li>Multiple conditions with AND\/OR logic<\/li>\n<li>Jetpack-free \u2014 no dependencies<\/li>\n<li>30 languages included<\/li>\n<li>Follows WordPress coding standards<\/li>\n<\/ul>\n\n<p><strong>Supported Languages (30):<\/strong><\/p>\n\n<p>Turkish, English, Spanish, German, French, Italian, Portuguese (Brazil), Portuguese (Portugal), Dutch, Polish, Russian, Japanese, Chinese (Simplified), Chinese (Traditional), Korean, Arabic, Hebrew, Swedish, Norwegian, Danish, Finnish, Greek, Czech, Hungarian, Romanian, Ukrainian, Vietnamese, Thai, Indonesian, Hindi, Slovak<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>cybokron-advanced-widget-visibility<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to Appearance \u2192 Widgets<\/li>\n<li>Edit any widget and click the \"Visibility\" button<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20replace%20jetpack%20widget%20visibility%3F\"><h3>Does this replace Jetpack Widget Visibility?<\/h3><\/dt>\n<dd><p>Yes, this is a standalone alternative. You can use this instead of Jetpack's visibility feature, or alongside it (they work independently).<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20site%3F\"><h3>Will this slow down my site?<\/h3><\/dt>\n<dd><p>No. The visibility checks are very lightweight and only run when widgets are being displayed.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20block-based%20widgets%3F\"><h3>Can I use this with block-based widgets?<\/h3><\/dt>\n<dd><p>This plugin works with classic widgets. For block-based widget areas, the visibility controls appear in the widget settings.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20%22include%20children%22%20and%20%22include%20all%20descendants%22%3F\"><h3>What is the difference between \"Include children\" and \"Include all descendants\"?<\/h3><\/dt>\n<dd><p>\"Include children\" covers direct children only (1 level deep). \"Include all descendants\" covers ALL nested levels \u2014 grandchildren, great-grandchildren, and beyond.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Fix: Updated GitHub Actions workflow to reference correct plugin file name and constants after 1.8.0 rebrand.<\/li>\n<li>Fix: Corrected plugin slug in deploy workflow (was <code>widget-visibility-with-descendants<\/code>, now <code>cybokron-advanced-widget-visibility<\/code>).<\/li>\n<li>Fix: Version consistency check now reads <code>CYBAWV_VERSION<\/code> constant instead of old <code>WVD_VERSION<\/code>.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Compliance: Text domain aligned to plugin slug <code>cybokron-advanced-widget-visibility<\/code>.<\/li>\n<li>Compliance: Renamed main plugin file to <code>cybokron-advanced-widget-visibility.php<\/code>.<\/li>\n<li>Compliance: Renamed all function\/class\/constant prefixes from <code>wvd<\/code> (3 chars) to <code>cybawv<\/code> (6 chars).<\/li>\n<li>Compliance: Renamed all CSS class prefixes from <code>wvd-<\/code> to <code>cybawv-<\/code>.<\/li>\n<li>Compliance: Renamed JavaScript global from <code>wvdData<\/code> to <code>cybawvData<\/code>.<\/li>\n<li>Compliance: Renamed option keys from <code>wvd_settings<\/code> to <code>cybawv_settings<\/code>.<\/li>\n<li>Compliance: Renamed widget data key from <code>wvd_visibility<\/code> to <code>cybawv_visibility<\/code>.<\/li>\n<li>Compliance: Updated translation file names to match new text domain.<\/li>\n<li>Changed: Main plugin class renamed from <code>Widget_Visibility_Descendants<\/code> to <code>Cybawv_Plugin<\/code>.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Feature: Added dedicated settings page with dashicons-visibility sidebar icon.<\/li>\n<li>Feature: Global bypass toggle to temporarily disable all visibility rules for debugging.<\/li>\n<li>Feature: Configurable maximum rules per widget (1-200, default 50).<\/li>\n<li>Feature: Option to delete all visibility data when plugin is uninstalled.<\/li>\n<li>Feature: Colored application icon displayed on settings page header.<\/li>\n<li>Enhancement: Quick links to Widgets page and GitHub support.<\/li>\n<li>Changed: Sidebar icon now uses WordPress dashicon instead of base64 PNG.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Added: Admin menu page with custom sidebar icon for quick access to plugin info.<\/li>\n<li>Added: Plugin icon in WordPress admin sidebar.<\/li>\n<li>Enhancement: About page with getting started guide and feature overview.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Rebranded: Plugin renamed to \"Cybokron Advanced Widget Visibility\".<\/li>\n<li>Changed: Plugin URI updated to new GitHub repository.<\/li>\n<li>Changed: All GitHub links updated to new repository name.<\/li>\n<li>Changed: Translation template and catalog headers updated.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Fixed: Text domain aligned to WordPress.org assigned slug <code>widget-visibility-with-descendants<\/code>.<\/li>\n<li>Fixed: Renamed main plugin file to match WordPress.org slug.<\/li>\n<li>Fixed: Removed <code>.distignore<\/code> from distribution package.<\/li>\n<li>Changed: Translation file names updated to match new text domain.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>WordPress.org submission release.<\/li>\n<li>Changed: Renamed plugin slug and main file to <code>cybokron-descendant-visibility-widgets<\/code>.<\/li>\n<li>Changed: Text domain aligned to plugin slug <code>cybokron-descendant-visibility-widgets<\/code>.<\/li>\n<li>Changed: Contributors updated to valid WordPress.org username <code>cybokron<\/code>.<\/li>\n<li>Added: <code>readme.txt<\/code> in WordPress.org standard format.<\/li>\n<li>Added: <code>.distignore<\/code> for clean distribution packaging.<\/li>\n<li>Added: <code>uninstall.php<\/code> with proper <code>WP_UNINSTALL_PLUGIN<\/code> guard.<\/li>\n<li>Added: GitHub Actions deploy workflow for WordPress.org SVN.<\/li>\n<li>Removed: Development artifact <code>.jules\/<\/code> directory.<\/li>\n<\/ul>\n\n<h4>1.4.7<\/h4>\n\n<ul>\n<li>Security: Restricted widget visibility UI rendering to users with <code>edit_theme_options<\/code>.<\/li>\n<li>Security: Prevented visibility data loss by restoring previous visibility settings when unauthorized users trigger widget updates.<\/li>\n<\/ul>\n\n<h4>1.4.6<\/h4>\n\n<ul>\n<li>Docs: Reviewed recent merged PRs and synchronized release notes for maintainers.<\/li>\n<\/ul>\n\n<h4>1.4.5<\/h4>\n\n<ul>\n<li>Fix: Added defensive <code>is_array()<\/code> validation for widget instance payloads.<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Performance: Eliminated N+1 admin queries in page\/category option generation.<\/li>\n<li>Stability: Prevented duplicate admin panel event handlers.<\/li>\n<li>Hardening: Strengthened frontend rule validation.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Accessibility: Converted visibility panel action controls to semantic button elements.<\/li>\n<li>Accessibility: Added <code>aria-label<\/code> and keyboard-visible focus styles.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Compliance: Removed custom GitHub updater integration for WordPress.org rules.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Security: Ensured widget visibility sanitization runs for REST widget updates.<\/li>\n<li>i18n: Synced all translation catalogs and removed obsolete keys.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Feature: Added GitHub updater integration (later removed for WordPress.org compliance).<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Fix: Removed hidden development artifact and normalized line endings.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Fix: Standardized plugin text domain usage across plugin files.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fix: Improved category rule evaluation robustness for single posts.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Feature: Added taxonomy rule type for hierarchical custom taxonomies.<\/li>\n<li>Feature: Added user_role rule type with multi-select role matching.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added 30 language translations.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Show or hide widgets by page, category, taxonomy, post type, and user context with descendant support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/284418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=284418"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cybokron"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=284418"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=284418"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=284418"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=284418"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=284418"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=284418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}