Opened 12 years ago
Closed 10 years ago
#21606 closed defect (bug) (worksforme)
term_exists returns 0 and null
Reported by: | barrykooij | Owned by: | barrykooij |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 3.4.1 |
Component: | Taxonomy | Keywords: | has-patch |
Focuses: | Cc: |
Description
The function term_exists in wp-includes/taxonomy.php has two different return values, 0 and null. The function does a few checks and returns 0 if the condition of the check is not met. If the checks are met, the return value will be the result of a $wpdb->get_row or $wpdb->get_var. If the term is not found in the database the methods get_row and get_var will return null.
Because of the different type of return values it's not possible to do a strict check on the return value to see if a term was found. I've changed the return 0 in term_exists to return null, so that if there is no term found the result of term_exists will always be null.
Attachments (2)
Change History (9)
#3
in reply to:
↑ 2
@
12 years ago
#5
@
12 years ago
Because of the different type of return values it's not possible to do a strict check on the return value to see if a term was found.
Consistency is good, but I wonder where the need for a strict check comes from.
It should be possible to check with if ( ! term_exists( 'events', 'post_tag' ) )
if a term was not found, unless I'm missing something.
#7
@
10 years ago
- Milestone Future Release deleted
- Resolution set to worksforme
- Status changed from new to closed
Since [29865], term_exists()
has returned null
in all cases where no term is found. This is the opposite of what was suggested in 21606.diff (which suggests returning 0 in these cases), but it does make return values consistent in case of failure, which is what matters for this ticket.
Taxonomy Patch