Możesz to zrobić na kilka sposobów. Wyjaśnię na przykładzie.
Załóżmy, że utworzyłeś sobie post_type o nazwie oferta i dodałeś do niego dwie taksonomie: rejon i branza. Czyli w pliku functions.php zrobiłeś:
add_action('init', 'oferta_register');
function oferta_register() {
$args = array(
'label' => __('Oferty'),
'singular_label' => __('Oferta'),
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => true,
'supports' => array('title', 'editor', 'thumbnail')
);
register_post_type( 'oferta' , $args );
}
register_taxonomy("rejon", array("oferta"), array("hierarchical" => true, "label" => "Rejony", "singular_label" => "Rejon", "rewrite" => true));
register_taxonomy("branza", array("oferta"), array("hierarchical" => true, "label" => "Branze", "singular_label" => "Branza", "rewrite" => true));
Dodałeś kilka wpisów tego post typu i teraz chcesz wyświetlić oferty z rejonu dolnośląskiego i branży budownictwo.
Parametry do query możesz przekazać na różne sposoby:
Sposób 1:
$args = 'branza=budownictwo&rejon=dolnoslaskie';
Sposób 2:
$term1 = 'budownictwo’;
$term2 = 'dolnoslaskie’;
$args = 'branza=’. $term1 . '&rejon=’.$term2;
Sposób 3:
$args = array(
'branza’ => budownictwo,
'rejon’ =>dolnoslaskie
);
Uwaga: sposoby 1-3 są OK, jeśli nie masz innych post typów, którym przypisano taksonomię branza. Jeśli natomiast chcesz się dodatkowo ograniczyć do tego post typu, to piszesz:
$args = array(
'rejon' => 'dolnoslaskie',
'braza' => 'budownictwo',
'post_type' => 'oferta',
);
A samo query dla wszystkich tych sposobów wygląda standardowo:
`query_posts( $args );
if ( have_posts() ) while ( have_posts() ) : the_post();
echo '<h2>’ . $post->post_title . '</h2>’;
the_content();
endwhile;
else
echo '<h2>Nothing found</h2>’;