web-dev-qa-db-fra.com

Les archives de balises de type publication personnalisées ne fonctionnent pas pour la boucle de base?

J'ai enregistré un type d'article personnalisé avec les bons paramètres. J'entends par là que j'ai ajouté 'taxonomies' => array('post_tag','category'),

J'ai aussi essayé d'utiliser register_taxonomy_for_object_type('post_tag', 'custom-post-type-name');

J'ai une fonction personnalisée dans mon functions.php pour charger une boucle de base en utilisant un conditionnel, le long des lignes de.

function child_maybe_do_grid_loop() {    
if( is_tag() || is_category() || is_archive {
require(CHILD_DIR.'/custom-tag.php');
 }
}

Le contenu de custom-tag.php est juste une boucle très basique

<?php if (have_posts()) : ?>
 <?php while (have_posts()) : the_post(); ?> 
   <?php the_permalink(); ?>" title="<?php the_title(); ?> 
 <?php endwhile; ?>    
<?php else : ?>
<h2 class="center">Not Found</h2>
<?php endif; ?>

Cela fonctionne très bien pour les balises de publication/page normales, mais pour une balise de type publication personnalisée, je reçois le message "Introuvable".

Des idées? J'ai supposé qu'une boucle simple régulière devrait fonctionner avec des archives de balises de type publications personnalisées ou dois-je mettre des conditions/requêtes supplémentaires dans cette archive?

** La mise à jour du commentaire de toscho m'a amené à activer le débogage. Par rapport à une page de balises de travail créée via une publication par défaut, la balise de débogage pour une balise de publication personnalisée est exactement la même.

Je compte même le nombre => 2 à afficher au fur et à mesure que j'ajoute progressivement plus de messages personnalisés à la même balise, mais la page refuse de renvoyer quoi que ce soit, je suis perdue.

1
Wyck

Dans le trou du lapin ..... j'ai trouvé un correctif.

À partir de cet article Archives de type d'article personnalisé par date et taxonomie

Ce qui me laisse à ce ticket de traçabilité http://core.trac.wordpress.org/ticket/14589

et les suivants

function post_type_tags_fix($request) {
    if ( isset($request['tag']) && !isset($request['post_type']) )
    $request['post_type'] = 'any';
    return $request;
} 
add_filter('request', 'post_type_tags_fix');

Peut-être que cela ne l'a pas fait dans la version 3.1?

8
Wyck

Vous devez exécuter la boucle avant l'instruction conditionnelle.

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

<?php if( is_tag() || is_category() || is_archive { ?>

<?php the_permalink(); ?>" title="<?php the_title(); ?> 

<? } else { ?>

//do something else

} ?>

<?php endwhile; ?>    
<?php else : ?>
<h2 class="center">Not Found</h2>
<?php endif; ?>
0
Chris_O