| @@ -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(); |