Opened 2 years ago

Closed 2 years ago

#17194 closed defect (bug) (fixed)

Term intersection requests ignore non-existent terms.

Reported by: ryan Owned by: scribu
Priority: normal Milestone: 3.2
Component: Taxonomy Version: 3.1
Severity: normal Keywords: has-patch
Cc:

Description

Perform a term intersection such as tag=foo+bar. If foo doesn't exist then bar is queried solo, thus reducing the request to tag=bar. Intersections that include terms that do not exist should not return any terms.

Attachments (2)

17194.diff (5.7 KB) - added by scribu 2 years ago.
17194.2.diff (5.8 KB) - added by scribu 2 years ago.
Use WP_Error instead of exceptions

Download all attachments as: .zip

Change History (12)

I thought I fixed this. Obviously not.

comment:2   ryan2 years ago

It was fixed for unions. Intersections seem to have slipped through.

  • Owner set to scribu
  • Status changed from new to accepted

Sort of related: #17199

scribu2 years ago

I ended up using exceptions, since otherwise I would have to check for an error after each call to tranform_query(). I'm not a big fan of exception handling, but in self-contained cases like this, they come in handy.

We should stick to WP_Error usage. No need to introduce an exception here.

comment:7 follow-up: ↓ 8   scribu2 years ago

As I said, the point of using exceptions here is to avoid error checking at each step. You can't do that with WP_Error message.

Version 0, edited 2 years ago by scribu (next)

comment:8 in reply to: ↑ 7   westi2 years ago

Replying to scribu:

As I said, the point of using exceptions here is to avoid error checking at each step. You can't do that with WP_Error, unless it's made throwable.

Yes. But using WP_Error and checking for it makes the code flow explicit and more readable and it how WordPress works.

  • Keywords has-patch added

17194.2.diff uses WP_Error.

scribu2 years ago

Use WP_Error instead of exceptions

  • Resolution set to fixed
  • Status changed from accepted to closed

(In [17686]) Handle term intersection requests containg inexistent terms. Props scribu. fixes #17194

Note: See TracTickets for help on using tickets.