A diferencia de los tipos de publicaciones, WordPress no tiene una ruta para la babosa taxonómica en sí.
Para hacer la propia babosa taxonomía lista de todos los mensajes que tienen cualquiera de los términos de la taxonomía asignado, es necesario utilizar el EXISTS
operator of tax_query
in WP_Query
: El ejemplo anterior
// Register a taxonomy 'location' with slug '/location'.
register_taxonomy('location', ['post'], [
'labels' => [
'name' => _x('Locations', 'taxonomy', 'mydomain'),
'singular_name' => _x('Location', 'taxonomy', 'mydomain'),
'add_new_item' => _x('Add New Location', 'taxonomy', 'mydomain'),
],
'public' => TRUE,
'query_var' => TRUE,
'rewrite' => [
'slug' => 'location',
],
]);
// Register the path '/location' as a known route.
add_rewrite_rule('^location/?$', 'index.php?taxonomy=location', 'top');
// Use the EXISTS operator to find all posts that are
// associated with any term of the taxonomy.
add_action('pre_get_posts', 'pre_get_posts');
function pre_get_posts(\WP_Query $query) {
if (is_admin()) {
return;
}
if ($query->is_main_query() && $query->query === ['taxonomy' => 'location']) {
$query->set('tax_query', [
[
'taxonomy' => 'location',
'operator' => 'EXISTS',
],
]);
// Announce this custom route as a taxonomy listing page
// to the theme layer.
$query->is_front_page = FALSE;
$query->is_home = FALSE;
$query->is_tax = TRUE;
$query->is_archive = TRUE;
}
}
en la línea con ' 'taxonomía'=> '$ term_name'' necesita ser doblemente citado como este ''taxonomy' =>" $ term_name "', o mejor no hay citas como esta ''taxonomy' => $ term_name', o mejor aún omite la asignación anterior y solo usa' 'taxonomía' => $ term-> slug'. Dicho esto, el método mostrado [ha quedado en desuso en favor de] (http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters) usando ''tax_query' => array (...)'. Espero que esto ayude. – MikeSchinkel
Lo siento, el retraso ... tienes razón. Modifiqué mi respuesta en consecuencia :) –
¡Excelente! Juntos espero que nuestros esfuerzos ayuden a otros. – MikeSchinkel