PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.9.3
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.9.3
4.9.3 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 All 201 releases
← All changes | views/templates/taxonomy-doc_category.php +137 -82 3.3.4 → 4.9.3 View file →
@@ -1,101 +1,156 @@
1 1 <?php
2 +// phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- view template receives variables via extract(); prefixing is impractical.
2 3
3 - /**
4 - * Template archive docs
5 - *
6 - * @link https://wpdeveloper.com
7 - * @since 1.0.0
8 - *
9 - * @package BetterDocs
10 - * @subpackage BetterDocs/public
11 - */
4 +
5 +if ( ! defined( 'ABSPATH' ) ) {
6 + exit;
7 +}
8 +/**
9 + * Template archive docs
10 + *
11 + * @link https://wpdeveloper.com
12 + * @since 1.0.0
13 + *
14 + * @package BetterDocs
15 + * @subpackage BetterDocs/public
16 + */
12 17
13 - get_header();
18 + get_header();
14 19
15 - $view_object = betterdocs()->views;
16 - $layout = betterdocs()->customizer->defaults->get( 'betterdocs_archive_layout_select', 'layout-1' );
17 - $title_tag = betterdocs()->customizer->defaults->get( 'betterdocs_archive_title_tag', 'h2' );
18 - $title_tag = betterdocs()->template_helper->is_valid_tag( $title_tag );
20 + $view_object = betterdocs()->views;
21 + $layout = betterdocs()->customizer->defaults->get( 'betterdocs_archive_layout_select', 'layout-7' );
22 + $title_tag = betterdocs()->customizer->defaults->get( 'betterdocs_archive_title_tag', 'h2' );
23 + $title_tag = betterdocs()->template_helper->is_valid_tag( $title_tag );
24 + $enable_pagintion = betterdocs()->settings->get( 'archive_enable_pagination' );
19 25
20 - $content_area_classes = [
21 - 'betterdocs-content-wrapper betterdocs-display-flex',
22 - "doc-category-$layout"
23 - ];
26 + $content_area_classes = [
27 + 'betterdocs-content-wrapper betterdocs-display-flex',
28 + "doc-category-$layout"
29 + ];
24 30
25 - $current_category = get_queried_object();
26 -?>
31 + $current_category = get_queried_object();
32 + $term_link = isset( $current_category->term_id ) ? get_term_link( $current_category->term_id ) : '';
33 + ?>
27 34
28 35 <div class="betterdocs-wrapper betterdocs-taxonomy-wrapper betterdocs-category-archive-wrapper betterdocs-wraper">
29 - <?php betterdocs()->template_helper->search();?>
36 + <?php betterdocs()->template_helper->search(); ?>
30 37
31 - <div class="<?php esc_attr_e( implode( ' ', $content_area_classes ) );?>">
32 - <?php betterdocs()->template_helper->sidebar( $layout );?>
38 + <div class="<?php echo esc_attr( implode( ' ', $content_area_classes ) ); ?>">
39 + <?php betterdocs()->template_helper->sidebar( $layout, 'template' ); ?>
33 40
34 - <div id="main" class="betterdocs-content-area">
35 - <div class="betterdocs-content-inner-area">
36 - <?php
37 - /**
38 - * Breadcrumbs
39 - */
40 - $view_object->get( 'templates/parts/breadcrumbs' );
41 - ?>
41 + <div id="main" class="betterdocs-content-area">
42 + <div class="betterdocs-content-inner-area">
43 + <?php
44 + $view_object->get(
45 + 'templates/parts/mobile-nav',
46 + [
47 + 'mobile_sidebar' => true,
48 + 'mobile_toc' => false
49 + ]
50 + );
51 + /**
52 + * Breadcrumbs
53 + */
54 + $view_object->get( 'templates/parts/breadcrumbs' );
55 + ?>
42 56
43 - <div class="betterdocs-entry-title">
44 - <?php
45 - echo wp_sprintf(
46 - '<%1$s class="betterdocs-entry-heading">%2$s</%1$s>',
47 - $title_tag,
48 - $current_category->name
49 - );
50 - echo wp_sprintf( '<p>%s</p>', wp_kses_post( $current_category->description ) );
51 - ?>
52 - </div>
57 + <div class="betterdocs-entry-title">
58 + <?php
59 + echo wp_sprintf(
60 + '<%1$s class="betterdocs-entry-heading">%2$s</%1$s>',
61 + $title_tag, //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
62 + esc_html( $current_category->name )
63 + );
64 + echo wp_sprintf( '<p>%s</p>', wp_kses_post( $current_category->description ) );
65 + ?>
66 + </div>
53 67
54 - <div class="betterdocs-entry-body betterdocs-taxonomy-doc-category">
55 - <ul>
56 - <?php
57 - $args = betterdocs()->query->docs_query_args( [
58 - 'term_id' => $current_category->term_id,
59 - 'term_slug' => $current_category->slug,
60 - 'posts_per_page' => -1,
61 - 'orderby' => betterdocs()->settings->get( 'alphabetically_order_post', 'betterdocs_order' ),
62 - 'order' => betterdocs()->settings->get( 'docs_order', 'ASC' ),
63 - ] );
68 + <div class="betterdocs-entry-body betterdocs-taxonomy-doc-category">
69 + <ul>
70 + <?php
71 + $page = get_query_var( 'paged' ) != '' ? get_query_var( 'paged' ) : 1;
72 + $args = betterdocs()->query->docs_query_args(
73 + [
74 + 'term_id' => $current_category->term_id,
75 + 'term_slug' => $current_category->slug,
76 + 'posts_per_page' => 10,
77 + 'paged' => $page,
78 + 'orderby' => betterdocs()->settings->get( 'alphabetically_order_post', 'betterdocs_order' ),
79 + 'order' => betterdocs()->settings->get( 'docs_order', 'ASC' )
80 + ]
81 + );
64 82
65 - $post_query = new WP_Query( $args );
83 + $custom_icon = betterdocs()->customizer->defaults->get( 'betterdocs_archive_list_icon' );
84 + $settings_list_icon = betterdocs()->settings->get( 'docs_list_icon' );
66 85
67 - if ( $post_query->have_posts() ):
68 - while ( $post_query->have_posts() ): $post_query->the_post();
69 - echo wp_sprintf(
70 - '<li>%s<a href="%s">%s</a></li>',
71 - betterdocs()->template_helper->icon(),
72 - esc_attr( esc_url( get_the_permalink() ) ),
73 - betterdocs()->template_helper->kses( get_the_title() )
74 - );
75 - endwhile;
76 - wp_reset_query();
77 - endif; // $post_query->have_posts()
86 + if ( ! $custom_icon && $settings_list_icon ) {
87 + $custom_icon = $settings_list_icon['url'];
88 + }
78 89
79 - betterdocs()->views->get( 'template-parts/nested-categories', [
80 - 'term_id' => $current_category->term_id,
81 - 'widget' => null,
82 - 'nested_subcategory' => betterdocs()->settings->get( 'archive_nested_subcategory' ),
83 - 'nested_docs_query_args' => [
84 - 'orderby' => betterdocs()->settings->get( 'alphabetically_order_post', 'betterdocs_order' ),
85 - 'order' => betterdocs()->settings->get( 'docs_order', 'ASC' ),
86 - ],
87 - 'nested_terms_query' => [
88 - 'orderby' => betterdocs()->settings->get( 'terms_orderby', 'betterdocs_order' ),
89 - 'order' => betterdocs()->settings->get( 'terms_order', 'ASC' ),
90 - ],
91 - ] );
92 - ?>
93 - </ul>
94 - </div>
95 - </div>
96 - </div>
97 - </div>
90 + if ( ! $enable_pagintion ) {
91 + $args['posts_per_page'] = -1;
92 + unset( $args['paged'] );
93 + }
94 +
95 + $post_query = new WP_Query( $args );
96 + $total_pages = ceil( ( isset( $post_query->found_posts ) ? $post_query->found_posts : 0 ) / 10 );
97 + if ( $post_query->have_posts() ) :
98 + while ( $post_query->have_posts() ) :
99 + $post_query->the_post();
100 + if ( $custom_icon ) {
101 + $icon = '<img src="' . esc_url( $custom_icon ) . '" />';
102 + } else {
103 + $icon = betterdocs()->template_helper->icon();
104 + }
105 + echo wp_sprintf(
106 + '<li>%s<a href="%s">%s</a></li>',
107 + $icon, //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
108 + esc_attr( esc_url( get_the_permalink() ) ),
109 + betterdocs()->template_helper->kses( get_the_title() ) //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
110 + );
111 + endwhile;
112 + wp_reset_postdata();
113 + endif; // $post_query->have_posts()
114 +
115 + betterdocs()->views->get(
116 + 'template-parts/nested-categories',
117 + [
118 + 'term_id' => $current_category->term_id,
119 + 'widget' => null,
120 + 'nested_subcategory' => betterdocs()->settings->get( 'archive_nested_subcategory' ),
121 + 'nested_docs_query_args' => [
122 + 'orderby' => betterdocs()->settings->get( 'alphabetically_order_post', 'betterdocs_order' ),
123 + 'order' => betterdocs()->settings->get( 'docs_order', 'ASC' )
124 + ],
125 + 'nested_terms_query' => [
126 + 'orderby' => betterdocs()->settings->get( 'terms_orderby', 'betterdocs_order' ),
127 + 'order' => betterdocs()->settings->get( 'terms_order', 'ASC' )
128 + ],
129 + 'list_icon_url' => $custom_icon,
130 + 'layout_type' => 'template'
131 + ]
132 + );
133 + ?>
134 + </ul>
135 + </div>
136 + </div>
137 + <?php
138 + if ( $enable_pagintion ) {
139 + $page = get_query_var( 'paged' ) != '' ? get_query_var( 'paged' ) : 1; //applicable for parent category only
140 + $view_object->get(
141 + 'template-parts/pagination',
142 + [
143 + 'total_pages' => $total_pages,
144 + 'link' => $term_link,
145 + 'current_page' => $page,
146 + 'template' => 'doc_category'
147 + ]
148 + );
149 + }
150 + ?>
151 + </div>
152 + </div>
98 153 </div>
99 154
100 155 <?php
101 156 get_footer();