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/template-parts/category-counter.php +36 -23 3.4.1 → 4.9.3 View file →
@@ -1,30 +1,43 @@
1 1 <?php
2 - if ( ! $show_count ) {
3 - return;
4 - }
2 +// phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- view template receives variables via extract(); prefixing is impractical.
5 3
6 - $prefix = $suffix = $suffix_singular = '';
4 +if ( ! defined( 'ABSPATH' ) ) {
5 + exit;
6 +}
7 +if ( ! $show_count ) {
8 + return;
9 +}
7 10
8 - if ( is_array( $counts ) ) {
9 - $prefix = $counts['prefix'];
10 - $_count = $counts['counts'];
11 - $suffix = $counts['suffix'];
12 - $suffix_singular = $counts['suffix_singular'];
13 - $counts = $_count;
14 - }
11 + $prefix = $suffix = $suffix_singular = '';
15 12
16 - $prefix = apply_filters( 'betterdocs_category_items_counts_prefix', $prefix, get_defined_vars() );
17 - $suffix = apply_filters( 'betterdocs_category_items_counts_suffix', $suffix, get_defined_vars() );
18 - $suffix_singular = apply_filters( 'betterdocs_category_items_counts_suffix_singular', $suffix_singular, get_defined_vars() );
13 +if ( is_array( $counts ) ) {
14 + $prefix = $counts['prefix'];
15 + $_count = $counts['counts'];
16 + $suffix = $counts['suffix'];
17 + $suffix_singular = $counts['suffix_singular'];
18 + $counts = $_count;
19 +}
20 +
21 + $prefix = apply_filters( 'betterdocs_category_items_counts_prefix', $prefix, get_defined_vars() );
22 + $suffix = apply_filters( 'betterdocs_category_items_counts_suffix', $suffix, get_defined_vars() );
23 + $suffix_singular = apply_filters( 'betterdocs_category_items_counts_suffix_singular', $suffix_singular, get_defined_vars() );
19 24 ?>
20 25
21 -<div data-count="<?php esc_attr_e( $counts );?>" class="betterdocs-category-items-counts">
22 - <span>
23 - <?php
24 - echo sprintf(
25 - _n( "$prefix %s $suffix_singular", "$prefix %s $suffix", $counts, 'betterdocs' ),
26 - $counts
27 - );
28 - ?>
29 - </span>
26 +<div data-count="<?php echo esc_attr( $counts ); ?>" class="betterdocs-category-items-counts">
27 + <span>
28 + <?php
29 + // Layout-only format string — not wrapped in _n() because it contains
30 + // nothing but positional placeholders, and translator typos in the
31 + // placeholder numbers (e.g. %4$s instead of %3$s) crash sprintf() on
32 + // PHP 8.x with ArgumentCountError.
33 + echo esc_html(
34 + sprintf(
35 + '%1$s %2$s %3$s',
36 + esc_html( $prefix ),
37 + esc_html( $counts ),
38 + esc_html( $counts === 1 ? $suffix_singular : $suffix )
39 + )
40 + );
41 + ?>
42 + </span>
30 43 </div>