Ich möchte Posts anzeigen, die nach category_name und custom taxonomy-term gefiltert sind:
ich habe
function channel_init() { // create a new taxonomy register_taxonomy( 'channel', 'post', array( 'label' => __( 'Channel' ), 'rewrite' => array( 'slug' => 'channel' ), 'hierarchical' => true, 'capabilities' => array( 'manage__terms' => 'edit_posts', 'edit_terms' => 'manage_categories', 'delete_terms' => 'manage_categories', 'assign_terms' => 'edit_posts' ) ) ); } add_action( 'init', 'channel_init' );
Stellen Sie sich vor, ich habe einen Kanal-Begriff “Nachrichten”. Und ein catgory_name “Musik” – Jetzt möchte ich fragen:
query_posts( array( 'channel' => 'news', 'category_name' => 'music') );
channel is ignored Die Kategorie wird nur gefiltert.
$args = array( 'post_type' => 'post', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'channel', 'field' => 'slug', 'terms' => array( 'news', 'comedy' ), //this is by slug ), array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => array( 103, 115, 206 ), //this is by id ), ),
);
$query = new WP_Query( $args );
Das könnte großartig sein, wenn Sie WP_Query als query_posts verwenden. Aber das Ergebnis ist das gleiche. WP_Query ist flexibler :). Vergessen Sie nicht, tiefer in die Abfrage einzudringen .