On Taxonomy Template page, want to add Post_Type

I have a custom taxonomy template page in my theme. Essentially, when someone clicks on a term link into this taxonomy, I -ALWAYS- want to add a specific post-type to the query.

I’m not entirely sure how to do this, I’ve found some functions that are included in PHP 5.3 that seem like they might do it, but I have 5.2 installed on my host.

Read More

But, I essentially want to take the current $wp_query, add ‘post-type’ => ‘my-custom-post-type’ and then continue on with $wp_query in my loop. Is this possible?

I’m probably over tired and over stressed and there’s a much simpler way to do this and I just can’t think of it =D

Thanks!

EDIT—-

Ok, Clearly my methodology here is WAY off. Probably a direct result of being tired.

I did manage to find code to manipulate $wp_query to add what I wanted; but it did not give the desired result:

function _my_method(&$item, $key) {
    if ($key == 'post_type') {
        $item = 'backend_data';
    }
}
array_walk_recursive( $wp_query , '_my_method' );

So, in the QUERY_VARS part of the array, now post_type has a value, backend_data. Except that farther on in the $wp_query array I can still see it querying every post type available.

[request] => SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN 
wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( 
wp_term_relationships.term_taxonomy_id IN (35) ) AND wp_posts.post_type IN ('post', 
'page', 'attachment', 'company', 'backend_data', 'ps_promotion') AND (wp_posts.post_status = 'publish' OR wp_posts.post_author = 1 AND wp_posts.post_status = 'private') GROUP BY 
wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10 [posts] => Array ( [0] => 
backend_data [1] => stdClass Object ( [ID] =>

and then the two posts its pulling which are in ‘posts’… it does however list backend_data again before it starts pulling post information. But I clearly don’t know enough about the inner workings of wordpress and arrays to understand WTF it’s doing at this point =D

EDIT —–

Okay, now I’m just convinced my brain has gone mushy and there has got to be a more wordpressy way to do this cause php array hacking doesn’t do the trick =D I tried throwing some wp_reset_query(); first before and then after my above function, and it still outputs the same thing with all post-types accounted for.

So, I guess I added all this to my question for no reason 🙁

Related posts

Leave a Reply

1 comment

  1. You can use pre_get_posts filter hook to check if you are on the taxonomy page and if so just add your custom post type to the query something like this:

    function add_my_type( $query ) {
        if ( $query->is_tax('YOUR_TAXONOMY') ) {
            $query->set( 'post_type', array('post','YOUR_CUSTOM_POST') );
        }
    }
    add_filter( 'pre_get_posts', 'add_my_type' );