Question

Je crée commune « Tag unique page » pour différents types de poste.
J'utilise le code suivant:

$loop = new WP_Query( array( 'post_type' => 'any', 'tag' => single_term_title( '', false ), 'posts_per_page' => 10 ) );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div class="entry-content">
     <?php the_excerpt(); ?>
  </div><!-- .entry-content -->
<?php endwhile; // End the loop. ?> 

Il fonctionne très bien jusqu'à ce qu'il n'y a pas de termes de taxonomie conflit.
Par exemple:
Si j'ai des noms de catégorie et Tag - "Vidéos" , catégorie aura limaces - "/ vidéos" & Tag "/ vidéos-2" .

Dans le cas où limace est pas le même que le nom de la taxonomie code ci-dessus ne ne fonctionne pas.
J'ai besoin d'une fonction alternative pour single_term_title () , quelque chose comme "single_term_slug ()" .

Toutes les idées?

P.S. Je pensais à la fonction " get_term_by () ", mais je didn « t HAD chance à adopter le code ci-dessus.

Mise à jour:. J'ai posté mon code ci-dessous

Était-ce utile?

La solution

Merci les gars pour cette réponse rapide. Très appréciée!

Voici le code pour la page Mots clés "global" (affichage des termes de taxonomie par défaut 'post_tag'):

<?php
$term_slug = get_queried_object()->slug;
    if ( !$term_slug )
    return;
    else  
$loop = new WP_Query( array( 'post_type' => 'any', 'tag' => $term_slug, 'posts_per_page' => 10 ) );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div class="entry-content">
    <?php the_excerpt(); ?>
  </div><!-- .entry-content -->
<?php endwhile; // End the loop. ?>  

Et l'exemple de code suivant est pour la requête de taxonomie personnalisée (affichage termes de taxonomie personnalisée):

<?php 
//http://codex.wordpress.org/Function_Reference/WP_Query#Taxonomy_Parameters
$term_slug = get_queried_object()->slug;
        if ( !$term_slug )
        return;
        else
$args = array(
    'tax_query' => array(
                     array(
                       'taxonomy' => 'gallery_category',
                       'field' => 'slug',
                       'terms' => $term_slug,
                       'posts_per_page' => 10
                     )
                   )
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div class="entry-content">
    <?php the_excerpt(); ?>
  </div><!-- .entry-content -->
<?php endwhile; // End the loop. ?> 

Autres conseils

Il y a une référence à l'objet terme dans $wp_query, et une fonction de raccourci pour saisir cette (à condition que vous utilisez WordPress 3.1):. get_queried_object()

Alors, pour obtenir la limace que vous feriez echo get_queried_object()->slug;

Si vous n'êtes pas en cours d'exécution WordPress 3.1, vous devrez appeler le get_queried_object() sur le global $wp_query:

global $wp_query; echo $wp_query->get_queried_object()->slug;

Voici une fonction single_term_slug() fourchue sur

scroll top