[wp-hackers] Getting lowest/last-level terms in hierarchical taxonomy

Simon Vart simon.vart at exigences.biz
Mon May 26 09:07:30 UTC 2014


One idea could be to create a transient to store the results of your query
for one day (or more) on first parsing, then delete it each time a category
is create/deleted/updated


2014-05-26 10:33 GMT+02:00 Nikola Nikolov <nikolov.tmw at gmail.com>:

> Yeah, that's one my thoughts, but I'm afraid it will cause too many queries
> perhaps? Although from looking at the code it seems like
> get_term_children() is calling _get_term_hierarchy() every time, which on
> the other hand is storing it's data in an option in the options table...
> I guess that might work :)
>
> Alternatively, I can store the last-level terms(once I fetch them) in an
> option as well and flush that option when a term is added/updated/deleted
> from that taxonomy.
>
> Any other ideas?
>
>
> On Mon, May 26, 2014 at 6:19 AM, Haluk Karamete <halukkaramete at gmail.com
> >wrote:
>
> > HI Nikola
> > what if you walk thru all terms in that tax and check if the current term
> > has children or not.
> >
> > http://codex.wordpress.org/Function_Reference/get_term_children
> >
> > Did I understand you correctly?
> > Here's an interesting one - how can I get all of the *last-level* terms
> in
> > a hierarchical taxonomy?
> >
> > Take the following hierarchy for instance:
> >
> >  - Food
> >  - - Vegetables
> >  - - - Cucumber
> >  - - - Carrot
> >  - - Bread
> >  - - Fruits
> >  - - - Citrus Fruits
> >  - - - - Orange
> >  - - - - Pomelo
> >  - Potato
> >
> > ( I know the potato doesn't make sense, but I just wanted to illustrate
> the
> > fact that some terms might be without children )
> >
> > In this case, I'd want to grab the following terms: Cucumber, Carrot,
> > Bread, Orange, Pomelo, Potato.
> >
> > I've been looking around I haven't found an easy solution so far.
> >
> > I can think of two options - getting all terms and then recreating the
> tree
> > from them, or getting each level of terms and doing subsequent
> get_terms()
> > calls(which I don't like, since it's probably going to be very
> > inefficient).
> >
> > My goal is to be able to present to the user a list of all last-level
> terms
> > in the taxonomy and then behind the scenes assign the post to all terms
> > from that tree(so, if you select Carrot, your post would be added to
> > Vegetables and Food).
> > I need to do that, since I have a custom table that stores post to post
> > relations and I need to be able to query for all items in a specific
> > category/list of categories with as little extra requests as
> possible(lots
> > of data is expected to be stored and performance is key).
> >
> > Thanks,
> > Nikola
> > _______________________________________________
> > wp-hackers mailing list
> > wp-hackers at lists.automattic.com
> > http://lists.automattic.com/mailman/listinfo/wp-hackers
> > _______________________________________________
> > wp-hackers mailing list
> > wp-hackers at lists.automattic.com
> > http://lists.automattic.com/mailman/listinfo/wp-hackers
> >
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers
>


More information about the wp-hackers mailing list