WordPress.org

Make WordPress Core

Opened 20 months ago

Last modified 18 months ago

#21606 new defect (bug)

term_exists returns 0 and null

Reported by: barrykooij Owned by: barrykooij
Milestone: Future Release 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)

taxonomy.php.patch (1.2 KB) - added by barrykooij 20 months ago.
Taxonomy Patch
21606.diff (2.3 KB) - added by nacin 18 months ago.

Download all attachments as: .zip

Change History (8)

barrykooij20 months ago

Taxonomy Patch

comment:1 scribu20 months ago

  • Milestone changed from Awaiting Review to 3.5

comment:2 follow-up: ocean9020 months ago

Should probably do the same with post_exists.

comment:3 in reply to: ↑ 2 barrykooij20 months ago

Replying to ocean90:

Should probably do the same with post_exists.

Thanks, created a new ticket for this. Please see #21607

Last edited 20 months ago by barrykooij (previous) (diff)

comment:4 scribu20 months ago

You can upload another patch on this ticket, since it seems similar enough.

comment:5 SergeyBiryukov20 months 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.

nacin18 months ago

comment:6 nacin18 months ago

  • Milestone changed from 3.5 to Future Release
Note: See TracTickets for help on using tickets.