I need to grab any posts using a custom taxonomy.
$args = array(
'post_type' => 'adverts',
'advert_tag' => 'politics' // Doesn't seem to work.
);
query_posts($args);
while ( have_posts() ) : the_post();
//Show Posts
endwhile;
Taxonomy Declaration:
add_action( 'init', 'add_custom_taxonomy', 0 );
function add_custom_taxonomy() {
register_taxonomy('advert_tag', 'Adverts',
array(
'hierarchical' => true,
'labels' => array(
'name' => _x( 'Advert Tags', 'taxonomy general name' ),
'singular_name' => _x( 'Advert Tag', 'taxonomy singular name' ),
'search_items' => __( 'Search Advert Tags' ),
'all_items' => __( 'All Advert Tags' ),
'parent_item' => __( 'Parent Advert Tag' ),
'parent_item_colon' => __( 'Parent Advert Tag:' ),
'edit_item' => __( 'Edit Advert Tag' ),
'update_item' => __( 'Update Advert Tag' ),
'add_new_item' => __( 'Add New Advert Tag' ),
'new_item_name' => __( 'New Advert Tag Name' ),
'menu_name' => __( 'Advert Tags' ),
),
'rewrite' => array(
'slug' => 'advert-tags',
'with_front' => false,
'hierarchical' => true
),
);
}
Custom Post Type Declaration:
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'Adverts',
array(
'labels' => array(
'name' => __( 'Adverts' ),
'singular_name' => __( 'Advert'),
'add_new' => __( 'Add New' ),
'add_new_item' => __( 'Add a New Advert' ),
'edit' => __( 'Edit' ),
'edit_item' => __( 'Edit Advert' ),
'new_item' => __( 'New Advert' ),
'view' => __( 'View' ),
'view_item' => __( 'View Advert' ),
'search_items' => __( 'Search Adverts' ),
'not_found' => __( 'No Adverts found' ),
'not_found_in_trash' => __( 'No Adverts found in Trash' ),
),
'supports' => array(
'title',
'thumbnail',
),
'has_archive' => true,
'menu_position' => 10,
'public' => true,
'rewrite' => array(
'slug' => 'adverts'
),
'taxonomies' => array('advert_tag')
)
);
}
Firs of all don’t use
query_posts()
ever, read more about it here: When should you use WP_Query vs query_posts() vs get_posts()?.You have to use
WP_Query
to fetch posts what you need. Read documentation for it. In your case the query could be like this:i am using this query to fetch custom posts (FAQs Posts) with its custom taxonomy (faq_category). since {taxonomy} parameter in WP_Query args was deprecated since v.3.1 and introduced {tax_query}. below is the code that works perfectly.
Here the code that works like magic. I am fetching all posts for the custom post_type “university_unit” with custom taxonomy “unit_type” and multiple taxonomy terms as “directorate” and “office”.
I hope it helps out.
This helped me to get all posts listed under each term for custom taxanomy for CPT
This answer now is not valid anymore since wordpress changes their taxonomy parameter information. please use this way. It will work. It works for me. “tax_query” replaces with “tax”. hope it will work.