[wp-trac] [WordPress Trac] #57987: Introduce new `wp_word_count` function

WordPress Trac noreply at wordpress.org
Mon Mar 27 02:06:10 UTC 2023


#57987: Introduce new `wp_word_count` function
-------------------------+-----------------------------
 Reporter:  wildworks    |      Owner:  (none)
     Type:  enhancement  |     Status:  new
 Priority:  normal       |  Milestone:  Awaiting Review
Component:  General      |    Version:
 Severity:  normal       |   Keywords:
  Focuses:               |
-------------------------+-----------------------------
 In the WordPress core, there is a JavaScript-based
 `WordCounter`(https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/wp/utils
 /word-count.js) class to count the number of characters appropriately
 based on language type. My understanding is that this logic is
 incorporated into the
 `@wordpress/wordcount`(https://github.com/WordPress/gutenberg/tree/trunk/packages/wordcount)
 package in Gutenberg. This utility is used in the document panel of the
 block editor to calculate the number of characters.

 Also, in Gutenberg PR(https://github.com/WordPress/gutenberg/pull/43403),
 a new "Post Time To Read" block was added. This block shows minutes
 required to finish reading the post. This block uses the `wordcount`
 package to calculate the number of characters in the content from which
 the time is calculated. However, the exact same PHP-based logic was needed
 to render this block server-side on the front-end side. Therefore, we
 added a new `wp_word_count()` PHP function at the same time we added this
 block.

 Since this block is experimental, the block and this function will not be
 bundled into the core. However, given the possibility that this block may
 become less experimental and be incorporated into the core in the future,
 and given the recent addition of the `wp_get_word_count_type()` function,
 we may consider implementing this function in the core.

 This PHP function is a direct transfer of the logic of the JavaScript-
 based `WordCounter.count`. Unit tests have also been implemented.
 https://github.com/WordPress/gutenberg/pull/43403/files#diff-
 796959a4b78efdd6a2af2ec364be6a4af2566a57041673f2fabbd153bc743cf9

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/57987>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list