get_term_by() calls are not cached — at Version 11
|Reported by:||wonderboymusic||Owned by:|
Description (last modified by wonderboymusic)
get_term() is the simplest way to retrieve one term, but it requires term_id and taxonomy. Because of this, terms are cached with term_id as key and $taxonomy as bucket. As a result, you can't easily grab a term by slug, unless you use get_term_by( 'slug' ). get_term_by( 'slug' ) and get_term_by( 'name' ) don't even have a query cache, so they go to the database every time. Because you can't get a term by slug without hitting the db, every place you want to get a term by slug: you first have to transform it into a term_id where it will then be cached. This is inefficient because the user may query by slug constantly and never by term_id.
Change History (13)
- Summary changed from Allow get_term() to accept string as first argument to get_term_by() calls are not cached