Je ne sais pas si cela est possible, mais j'essaie de faire fonctionner mon fichier taxonomy.php de la même manière pour les 10 de mes taxonomies personnalisées. Le code ci-dessous fonctionne exactement comme j'en ai besoin (c'est-à-dire: à une URL se terminant par ../inventory/yearmade/2017/
toutes les publications avec le terme de taxonomie yearmade
de 2017
sont bouclés et sortis (ou toute année entrée à la fin de l'url).
Mais je dois actuellement créer 10 fichiers taxonomie - [ taxonomie ]. Php différents, chacun avec le changement de code d'un chaîne différente dans le taxonomy => '___'
(fabrication annuelle, marque, modèle, longueur, poutre, moteur, taille, puissance, entraînement, remorque).
J'ai pu utiliser 'terms' => '$queried_object->slug'
(ligne 8) pour le chargement dynamique du terme. Existe-t-il un moyen de faire de même pour la taxonomie?
J'ai essayé la même chose sur la ligne 6: 'taxonomy' => '$queried_object->slug'
mais cela ne fonctionne pas.
<?php
$queried_object = get_queried_object();
$query = new WP_Query( array(
'post_type' => "inventory",
'tax_query' => array(
array(
'taxonomy' => "yearmade',
'field' => "slug",
'terms' => "$queried_object->slug",
)
)
) );
while ( $query->have_posts() ) : $query->the_post(); ?>
<div>
<h2><?php the_title(); ?></h2>
<ul>
<li>Year: <?php the_terms( $post->ID, 'yearmade'); ?>
<li>Make: <?php the_terms( $post->ID, 'make'); ?>
<li>Model: <?php the_terms( $post->ID, 'model'); ?>
<li>Length: <?php the_terms( $post->ID, 'length'); ?>
<li>Beam: <?php the_terms( $post->ID, 'beam'); ?>
<li>Engine: <?php the_terms( $post->ID, 'engine'); ?>
<li>Size: <?php the_terms( $post->ID, 'size'); ?>
<li>Horsepower: <?php the_terms( $post->ID, 'horsepower'); ?>
<li>Drive: <?php the_terms( $post->ID, 'drive'); ?>
<li>Trailer: <?php the_terms( $post->ID, 'trailer'); ?>
</ul>
</div>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
Dans un modèle de taxonomie, l'objet interrogé est une instance de WP_Term , dont l'un des champs sera la taxonomie d'où provient le terme.
Vous pouvez donc commencer votre taxonomy.php
comme suit:
$queried_object = get_queried_object () ;
$args = array (
'post_type' => 'inventory',
'tax_query' => array (
array (
'taxonomy' => $queried_object->taxonomy,
'field' => 'slug',
'terms' => $queried_object->slug,
),
),
) ;
$query = new WP_Query ($args) ;