[wp-trac] [WordPress Trac] #21760: Allow get_term() to accept string as first argument
WordPress Trac
wp-trac at lists.automattic.com
Fri Aug 31 21:26:23 UTC 2012
#21760: Allow get_term() to accept string as first argument
----------------------------+-----------------------------
Reporter: wonderboymusic | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Taxonomy | Version: 2.3
Severity: normal | Keywords: has-patch
----------------------------+-----------------------------
{{{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}}}.
My patch does the following:
1) Changes the type of argument 1 of {{{get_term}}} to be mixed -
{{{int}}}, {{{string}}}, or {{{object}}}[[BR]]
2) Allows key in the {{{$taxonomy}}} cache bucket to be {{{name}}},
{{{slug}}}, or {{{term_id}}}[[BR]]
3) Deprecates {{{get_term_by()}}}[[BR]]
4) updates {{{clean_term_cache()}}} to also evict by {{{name}}} and
{{{slug}}}
The result is that {{{get_term()}}} can be called with {{{term_id}}},
{{{slug}}}, or {{{name}}} - and then CACHED by {{{term_id}}}, {{{slug}}},
or {{{name}}}.
--
Ticket URL: <http://core.trac.wordpress.org/ticket/21760>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list