[wp-trac] [WordPress Trac] #54815: Warning found in post-thumbnail-template.php on PHP 8.0.14

WordPress Trac noreply at wordpress.org
Fri Jan 14 03:30:48 UTC 2022


#54815: Warning found in post-thumbnail-template.php on PHP 8.0.14
--------------------------+---------------------
 Reporter:  SierraTR      |       Owner:  (none)
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  5.9
Component:  General       |     Version:  trunk
 Severity:  normal        |  Resolution:
 Keywords:  needs-patch   |     Focuses:
--------------------------+---------------------

Comment (by costdev):

 The warning occurs in other PHP versions as well. See
 [https://www.php.net/manual/en/function.preg-match.php#refsect1-function
 .preg-match-errors preg_match].

 ----

 The regex in question:

 {{{
 '/(^|&)loading='
 }}}

 It's simply missing a trailing `/`.

 ----

 "Why are we only finding this out now?"

 No tests hit the condition on Line 198. See
 [https://app.codecov.io/gh/WordPress/wordpress-develop/blob/trunk/src/wp-
 includes/post-thumbnail-template.php the report] (this is subject to
 change, of course). As a result, the faulty `preg_match()` is never
 triggered and so the warning is not thrown.

 This is why tests should ''at least'' achieve line coverage for all new
 code.

 ----

 To trigger the warning (+hint for unit tests):

 1. Switch to Twenty Twenty-One.
 2. Create a page and add a Featured Image.
 3. Add this to `page.php`:

 {{{#!php
 <?php

 if ( have_posts() ) : while ( have_posts() ) : the_post();
         get_the_post_thumbnail(
                 get_the_ID(),
                 'post-thumbnail',
                 'does_not_contain_loading=true'
         );
 endwhile; endif;
 }}}

 4. Load the page.
 5. You should see this warning:

  Warning: preg_match(): No ending delimiter '/' found in /wp-includes
 /post-thumbnail-template.php on line 198

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/54815#comment:3>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list