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 | views/shortcodes/faq.php +52 -40 3.4.24.9.2 View file →
@@ -1,49 +1,61 @@
1 1 <div
2 - <?php echo $wrapper_attr; ?>>
3 - <h2 class="<?php esc_attr_e( $faq_heading_class );?> betterdocs-faq-section-title">
4 - <?php echo $faq_heading; ?>
5 - </h2>
2 + <?php
3 +// phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- view template receives variables via extract(); prefixing is impractical.
4 +if ( ! defined( 'ABSPATH' ) ) {
5 + exit;
6 +}
7 +echo $wrapper_attr; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- contains attriutes and values together which are required here ?>>
8 + <?php
9 + $section_tag = betterdocs()->template_helper->is_valid_tag( $faq_section_title_tag );
10 + echo wp_kses_post( '<' . $section_tag . ' class="' . esc_attr( $faq_heading_class ) . ' betterdocs-faq-section-title">' . esc_html( $faq_heading ) . '</' . $section_tag . '>' );
11 + ?>
6 12
7 - <div class="betterdocs-faq-inner-wrapper">
8 - <?php
9 - $terms = get_terms( $terms_query_args );
10 - $faq_json = '';
13 + <div class="betterdocs-faq-inner-wrapper">
14 + <?php
15 + $terms = get_terms( $terms_query_args );
16 + $faq_json = '';
11 17
12 - if ( ! is_wp_error( $terms ) ) {
13 - $GLOBALS['betterdocs_faq_schema'] = [];
14 - if ( $faq_schema ) {
15 - $faq_json = [
16 - '@context' => 'https://schema.org',
17 - '@type' => 'FAQPage',
18 - 'mainEntity' => []
19 - ];
18 + if ( ! is_wp_error( $terms ) ) {
19 + $GLOBALS['betterdocs_faq_schema'] = [];
20 + if ( $faq_schema ) {
21 + $faq_json = [
22 + '@context' => 'https://schema.org',
23 + '@type' => 'FAQPage',
24 + 'mainEntity' => []
25 + ];
20 26
21 - $GLOBALS['betterdocs_faq_schema_main_entity'] = $faq_json['mainEntity'];
22 - }
27 + $GLOBALS['betterdocs_faq_schema_main_entity'] = $faq_json['mainEntity'];
28 + }
23 29
24 - foreach ( $terms as $term ) {
25 - if ( $term->count <= 0 ) {
26 - continue;
27 - }
30 + foreach ( $terms as $term ) {
31 + if ( $term->count <= 0 ) {
32 + continue;
33 + }
28 34
29 - // title
30 - $view_object->get( 'shortcode-parts/faq-term-title', [
31 - 'title' => $term->name
32 - ] );
35 + // title
36 + $view_object->get(
37 + 'shortcode-parts/faq-term-title',
38 + [
39 + 'title' => $term->name
40 + ]
41 + );
33 42
34 - // faq list
35 - $view_object->get( 'shortcode-parts/faq-list', [
36 - 'term' => $term,
37 - 'faq_schema' => $faq_schema,
38 - 'faq_json' => $faq_schema ? $faq_json['mainEntity'] : ''
39 - ] );
40 - }
43 + // faq list
44 + $view_object->get(
45 + 'shortcode-parts/faq-list',
46 + [
47 + 'term' => $term,
48 + 'faq_schema' => $faq_schema,
49 + 'faq_json' => $faq_schema ? $faq_json['mainEntity'] : ''
50 + ]
51 + );
52 + }
41 53
42 - if ( $faq_schema ) {
43 - $faq_json['mainEntity'] = $GLOBALS['betterdocs_faq_schema_main_entity'];
44 - echo '<script type="application/ld+json">' . wp_json_encode( $faq_json ) . '</script>';
45 - }
46 - }
47 - ?>
48 - </div>
54 + if ( $faq_schema ) {
55 + $faq_json['mainEntity'] = $GLOBALS['betterdocs_faq_schema_main_entity'];
56 + echo '<script type="application/ld+json">' . wp_json_encode( $faq_json ) . '</script>';
57 + }
58 + }
59 + ?>
60 + </div>
49 61 </div>