Désolé, la question n'a peut-être pas de sens. J'ai essentiellement un type de publication personnalisé appelé "Projets" et je dois créer un moyen de filtrer les attributs du projet tels que "nom", "type", etc.
Par exemple, si j'ai un type de projet appelé avion et un autre type de projet appelé avion. Je voudrais pouvoir rechercher tous les projets portant le nom avion et les afficher dans la boucle.
J'ai examiné les taxonomies, mais je ne sais pas comment les utiliser efficacement.
Merci
Voici comment je l'ai fait. Si vous avez votre type de message personnalisé comme "projets", et votre catégorie comme "avion".
Si vous n'envisagez pas d'utiliser la boucle de pré-construction, créez-en une autre appelée loop-projects.php. Cependant, ce n'est pas nécessaire.
<?php
$args = array(
'numberposts' => 5,
'post_type' => 'projects',
'category_name' => 'airplane');
query_posts( $args );
get_template_part( 'loop', 'projects' );
wp_reset_query();
?>
Si je comprends bien votre description, la structure est la suivante:
custom post type
Project ;taxonomy
associé à Projet CPT
;term
dans Type taxonomy
.Dans la version actuelle de WP, vous pouvez effectuer une requête similaire (mais sera modifiée dans WP 3.1):
query_posts( array( 'post_type' => 'project','type' => 'airplane' ) );
Voir Paramètres de taxonomie dans le Codex.
Aussi simple que cela:
// default filter:
apply_filters( 'your_filter_name', $val_to_filter );
// or, make it more specific:
apply_filters( 'your_filter_name_'.$val_to_filter, $val_to_filter );
Vous pouvez ajouter ceci quelque part avant votre appel à register_post_type, afin qu'il ressemble à ceci:
// assuming, you got an $args array to make it easy to handle:
$args['name'] = apply_filters('your_name_filter', $args['name'] );
$args['name'] = apply_filters('your_name_filter_'.$args['name'], $args['name']);
$args['type'] = apply_filters('your_type_filter', $args['type']);
$args['type'] = apply_filters('your_type_filter_'.$args['type'], $args['type']);
$name = $args['name'];
unset($args['name']);
register_post_type( $name, $args );