PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.9.2
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.9.2
4.9.2 4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 All 200 releases
← All changes | includes/Editors/BlockEditor/Blocks/Sidebar.php +20 -3 4.5.44.9.2 View file →
@@ -1,8 +1,13 @@
1 1 <?php
2 +// phpcs:disable WordPress.DB.SlowDBQuery.slow_db_query_meta_query,WordPress.DB.SlowDBQuery.slow_db_query_meta_key,WordPress.DB.SlowDBQuery.slow_db_query_tax_query -- core block query; meta/tax filtering required.
3 +namespace WPDeveloper\BetterDocs\Editors\BlockEditor\Blocks;
2 4
3 -namespace WPDeveloper\BetterDocs\Editors\BlockEditor\Blocks;
5 +if ( ! defined( 'ABSPATH' ) ) {
6 + exit;
7 +}
4 8
9 +
5 10 use WPDeveloper\BetterDocs\Editors\BlockEditor\Block;
6 11
7 12 class Sidebar extends Block {
8 13
@@ -55,8 +60,12 @@
55 60 'docs_per_page' => -1,
56 61 'postsOrderBy' => 'title',
57 62 'postsOrder' => 'asc',
58 63 'enableNestedSubcategory' => false,
64 + // Default follows the global "Lazy Load Sidebar Docs & Subcategories"
65 + // setting, mirroring the Elementor sidebar widget's control default, so
66 + // enabling the setting lazy-loads the block too unless overridden.
67 + 'enableLazyLoad' => (bool) betterdocs()->settings->get( 'archive_lazy_load_descendants' ),
59 68 'docs_per_subcategory' => 10,
60 69 'titleTag' => 'h1',
61 70 'show_count' => false,
62 71 'enableStickyTOC' => false,
@@ -122,10 +131,9 @@
122 131 'terms_orderby' => $settings['terms_orderby'] == 'doc_category_order' ? 'betterdocs_order' : $settings['terms_orderby'],
123 132 'terms_include' => array_diff( $this->string_to_array( $settings['includeCategories'] ), $this->string_to_array( $settings['excludeCategories'] ) ),
124 133 'terms_exclude' => isset( $settings['excludeCategories'] ) ? $this->string_to_array( $settings['excludeCategories'] ) : '',
125 134 'nested_subcategory' => $settings['enableNestedSubcategory'],
126 - 'multiple_knowledge_base' => $default_multiple_kb,
127 - 'kb_slug' => $kb_slug,
135 + 'lazy_load' => ! empty( $settings['enableLazyLoad'] ),
128 136 'sidebar_list' => true,
129 137 'list_icon_url' => '',
130 138 'list_icon_name' => $settings['sidebar_layout'] == 'layout-4' ? '' : ( ! empty( $this->attributes['listIconImageUrl'] ) ? $this->attributes['listIconImageUrl'] : ( ! empty( $this->attributes['listIcon'] ) ? $this->attributes['listIcon'] : ( ! empty( betterdocs()->settings->get( 'docs_list_icon' ) ) ? betterdocs()->settings->get( 'docs_list_icon' )['url'] : 'list' ) ) ),
131 139 'layout_type' => 'block',
@@ -143,8 +151,17 @@
143 151 $default_view_params['number_of_faqs'] = $settings['initialFAQQueryNumber'];
144 152 $default_view_params['faq_term_ids'] = $settings['searchModalQueriesFaqGroupIds'];
145 153 $default_view_params['doc_ids'] = $settings['searchModalQueryDocIds'];
146 154 $default_view_params['doc_term_ids'] = $settings['searchModalQueryTermIds'];
155 + }
156 +
157 + // Pass a KB scope only when one is explicitly selected on the block. When none is
158 + // set, omit kb_slug so the betterdocs_sidebar_template_shortcode_params filter
159 + // (Pro/MKB) can inject the current knowledge_base context on KB templates — the
160 + // same path the default sidebar uses. (Passing kb_slug='' would block injection.)
161 + if ( ! empty( $kb_slug ) ) {
162 + $default_view_params['shortcode_attr']['kb_slug'] = $kb_slug;
163 + $default_view_params['shortcode_attr']['multiple_knowledge_base'] = (bool) $default_multiple_kb;
147 164 }
148 165
149 166 return $default_view_params;
150 167 }