• Resolved tracy apps

    (@tray)


    wow that title is long. lets see if can explain this accurately without writing a novel. ??

    lets start with the desired outcome:
    i have a featured slideshow that i want featured posts AND featured events to appear in.

    • the featured posts are in a category called “Homepage Slideshow” (slug: homepage-slideshow)
    • the featured events are a custom post type in a category (custom taxonomy, “tribe_events_cat”) called “Featured Events” (slug: featured-events)

    so i need a query that will grab “posts” in category “homepage-slideshow” AND custom post type “tribe_events” in custom taxonomy “tribe_events_cat” value “featured-events”

    clear as mud? any ideas?

Viewing 9 replies - 1 through 9 (of 9 total)
  • Lisa Sabin-Wilson

    (@lisasabinwilson)

    This should at least get you started, I think. Forgive my ‘termies’ variable in there – it was late and I was punchy :p

    $tax = $taxonomy = strip_tags( get_the_term_list($post->ID, 'POST_TYPE') );
    		$termies = get_the_terms( $post->id, 'POST_TYPE' );
    		$terms_slugs = array();
    		foreach( $termies as $term ) {
    		$terms_slugs[] = $term->slug; // save the slugs in an array
    		}
    		$query = array(
    			'post_type'=> 'POST_TYPE',
    			'taxonomy' => 'CUSTOM_TAX_NAME',
    			'term' => $term->slug,
    			'category_name' => 'CATEGORY_NAME'
    		);
    	query_posts( $query );

    Or at least close for your purposes? It grabs the term from the postID, gets the term slug then queries: POST_TYPE, TAX, CATEGORY_NAME – yea?

    Lisa Sabin-Wilson

    (@lisasabinwilson)

    Actually think I don’t need that initial $tax – I think you can ignore that .. its an orphan c/p. ??

    Lisa Sabin-Wilson

    (@lisasabinwilson)

    read the initial post, danggit – my query above doesn’t really do it.

    Would something like this do it for you?

    $query =
    	array(
    		'post_type'=> 'post',
    		'category_name' => 'Homepage Slideshow',
    	);
    	array (
    		'post_type' => 'tribe_events',
    		'taxonomy' => 'tribe_events_cat',
    		'category_name' => 'Featured Events'
    	);
    query_posts($query);

    not sure?

    Thread Starter tracy apps

    (@tray)

    well.. i think we’re getting close. i had to tweak the featured events query a bit. (i was over thinking it… like i usually do) now both pieces of this query work. but only the first array shows up in the query.

    here’s the code i’m working with:

    $query =
    
    	array(
    		'post_type'=> 'post',
    		'category_name' => 'Homepage Slideshow',
    	);
    	array (
    		'post_type' => 'tribe_events',
    		'eventDisplay' => 'upcoming',
    		'tribe_events_cat' => 'featured-event',
    	);
    
    query_posts($query);

    so now i’m wondering.. is this a limitation of query posts? maybe this needs to be done with two separate queries? ooh. i just made my brain hurt more…

    Lisa Sabin-Wilson

    (@lisasabinwilson)

    So the query pulls:
    Posts in Homepage Slideshow
    AND
    CPT = tribe_events in
    Taxonomy – tribe_events_cat with
    term = featured-event
    ?

    $query =
    
    	array(
    		'post_type'=> 'post',
    		'category_name' => 'Homepage Slideshow',
    	);
    	array (
    		'post_type' => 'tribe_events',
    		'taxonomy' => 'tribe_events_cat',
    		'term' => 'featured-event',
    	);
    
    query_posts($query);

    ?

    Thread Starter tracy apps

    (@tray)

    no. it’s pulling one or the other. whatever array (post type, cat/tax) is declared first. the latter is ignored completely.

    and while i was able to do something like this

    $query =
    	array (
    		'post_type' => array(
    			'post',
    			'tribe_events'),
    );
    query_posts($query);

    which pulled ALL “post” and “tribe_events” entries… as soon as i try to filter out the post category and custom post taxonomy, of course, no entries are returned. (since there is no post that meets the custom tax AND post category)

    Thread Starter tracy apps

    (@tray)

    alright. i figured it out with some PHP goodness (and by “i” i mean “the smart PHP minds in the office”) so here’s what we ended up doing for future searchers of this issue.

    we created TWO queries. one for the custom post type, one for the posts, then merged the two arrays, then set up a “foreach” loop in php. here’s the simplified code:

    $query1 =
    	array(
    		'post_type'=> 'post',
    		'category_name' => 'Homepage Slideshow',
    		'showposts' => 5
    	);
    $query2 =
    	array (
    		'post_type' => 'tribe_events',
    		'eventDisplay' => 'upcoming',
    		'tribe_events_cat' => 'featured-event',
    		'showposts' => 5
    	);
    
    $postGroup1 = get_posts( $query1);
    $postGroup2= get_posts( $query2);
    
    $mergedcrap = array_merge($postGroup1, $postGroup2);
    
    foreach ( $mergedcrap as $post )
    {
      echo the_title();
      the_excerpt();
    }
    Lisa Sabin-Wilson

    (@lisasabinwilson)

    All hail merged crap!

    Thread Starter tracy apps

    (@tray)

    i think “$mergedcrap” should be my band name… ??

Viewing 9 replies - 1 through 9 (of 9 total)
  • The topic ‘a complex query posts situation: posts in a category & custom post type taxonomy’ is closed to new replies.