Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

is there any way to loop terms in a way they display in menu? Eg:

Let say I have 2 taxonomies in a post type - tax1 and tax2.

They are not hierarchical to each other.

If I have posts that have terms like this:

  • post 1 => tax1 = p1 ,tax2 = term1
  • post 2 => tax1 = p1 ,tax2 = term2
  • post 3 => tax1 = p1 ,tax2 = term3
  • post 4 => tax1 = p2 ,tax2 = termA
  • post 4 => tax1 = p2 ,tax2 = termB
  • ......etc

Can I use

if(tax1=p1) echo 'term1,term2, term3... in menu/widget'
elseif if(tax1=p2) echo 'termA,termB, termC... in menu/widget'

in my template to display the tax2 terms in the sidebar menu?

Somebody might wondering why I don't want to use parent-child terms. Well, this is because I expects have hundreds of term in tax2. If I use hierarchical taxonomy, that will be very long list in single taxonomy. I don't know whether WP able to process them or not.

share|improve this question
add comment

1 Answer 1

Rather than relying on a literal menu, you could use wp_list_pages possibly to better effect and sort out by certain criteria if you wish, then foreach page, display terms. Here is a little function I wrote to spit out terms for a taxonomy passed to it:

// give taxonomy, will return link list to custom structure. 
function tax_link_list( $taxonomy ) {
$terms = get_the_terms($post->ID, $taxonomy);
if ($terms && ! is_wp_error( $terms ) ) {
    $term_links = array();
    foreach ($terms as $term) { 
        $term_links[] = '<a href="'.get_bloginfo('url').'/property-results/?'.$taxonomy.'='.$term->slug.'">'.$term->name.'</a>';
    }
    $term_space = implode(' ', $term_links);
    return $term_space;
}
}

In this example it is returning a list of links for a real estate search engine. You could have it simply return the text. To run this, I pass a taxonomy to the function and get a list of terms. Modified, this might work for you. Check out wp_list_pages as well. Good luck.

share|improve this answer
    
Correct me if I am wrong, cause I am not so good in coding. From your codes what I get is full list of terms from the taxonomy (which is tax2, from my example above) that I defined in the function? They will not grouped based on the tax1's term? –  dev-jim Jun 1 '12 at 20:24
    
Right. You're going to write that function and edit it's output probably to something more along the lines of (in the foreach): $term_links[] = $term->name;. When you run the function (in page or wherever), you'll say: echo tax_link_list($tax1); –  GhostToast Jun 1 '12 at 20:26
    
I see, thanks for your suggestion.:) –  dev-jim Jun 2 '12 at 7:53
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.