From 9abf35cfa703f547810ccdacbeeec8a7dccede89 Mon Sep 17 00:00:00 2001 From: Tonya Mork Date: Fri, 10 Sep 2021 15:02:07 +0000 Subject: [PATCH] Code Modernization: Fix null to non-nullable deprecation in `term_exists()`. The `term_exists()` function expects a string or an integer for the `$term` parameter. It validates for integer, but not for string or `null`. One of the pre-existing test cases, passed `null` to the function, leading to a `trim(): Passing null to parameter #1 ($string) of type string is deprecated` notice on PHP 8.1. Fixed now by doing a cursory check on the variable at the start of the function and bowing out early in case the `$term` is `null`. The issue was discovered via and is already covered by the `Tests_TermExists::test_term_exists_unknown()` test method. Follow-up to [15220]. [38716]. Props jrf, hellofromTonya. See #53635. git-svn-id: https://develop.svn.wordpress.org/trunk@51796 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/taxonomy.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/wp-includes/taxonomy.php b/src/wp-includes/taxonomy.php index 4014a62655..531a6f537b 100644 --- a/src/wp-includes/taxonomy.php +++ b/src/wp-includes/taxonomy.php @@ -1480,6 +1480,10 @@ function unregister_term_meta( $taxonomy, $meta_key ) { function term_exists( $term, $taxonomy = '', $parent = null ) { global $wpdb; + if ( null === $term ) { + return null; + } + $select = "SELECT term_id FROM $wpdb->terms as t WHERE "; $tax_select = "SELECT tt.term_id, tt.term_taxonomy_id FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_id = t.term_id WHERE ";