Je souhaite afficher les publications de catégories de ma taxonomie personnalisée, mais je ne sais vraiment pas comment y parvenir. J'utilise le filtrage isotopique, qui fonctionne comme prévu avec les catégories de publication par défaut. Je peux cliquer sur une catégorie particulière pour afficher tous les articles liés à cette catégorie, mais cela ne fonctionne pas avec ma taxonomie personnalisée. Je peux voir toutes les sous-taxonomies (merci à Rajeev Vyas), mais lorsque je clique sur l'une d'elles, aucun message n'est affiché. Pouvez-vous s'il vous plaît me dire ce que je fais mal?
C'est le code de mon functions.php:
add_action('init', 'portfolio_register');
function portfolio_register() {
$labels = array(
'name' => _x('My Portfolio', 'post type general name'),
'singular_name' => _x('Portfolio Item', 'post type singular name'),
'add_new' => _x('Add New', 'portfolio item'),
'add_new_item' => __('Add New Portfolio Item'),
'edit_item' => __('Edit Portfolio Item'),
'new_item' => __('New Portfolio Item'),
'view_item' => __('View Portfolio Item'),
'search_items' => __('Search Portfolio'),
'not_found' => __('Nothing found'),
'not_found_in_trash' => __('Nothing found in Trash'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'menu_icon' => get_stylesheet_directory_uri() . '/images/portfolio-icon.png',
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title','editor','author','thumbnail','comments')
);
register_post_type( 'portfolio' , $args );
flush_rewrite_rules();
}
// Custom taxonomy for Portfolio Categories (Galleries)
register_taxonomy('galleries', array('portfolio'), array('hierarchical' => true, 'label' => 'Galleries', 'singular_label' => 'Gallery', 'rewrite' => true, 'public' => true ));
Et ce code provient de my loop.php, qui est mon modèle de type de message personnalisé:
<?php /* Display filter options if homepage */ ?>
<?php if(is_home()) { ?>
<div id="filtering-nav">
<a href="#" class="filter-btn"><span>Filter</span></a>
<ul>
<li><a href="#all" class="all">All</a></li>
<?php
$args=array( 'orderby' => 'name', 'taxonomy'=>'galleries' );
$categories=get_categories($args);
foreach($categories as $category) { ?>
<li><a href="#<?php echo $category->category_nicename; ?>" class="<?php echo $category->category_nicename; ?>"><?php echo $category->name; ?></a></li>
<?php } ?>
</ul>
<div class="clearfix"></div>
</div>
<?php } ?>
<?php /* If this is the homepage, display all posts on one page */
if(is_home() && get_option('show_all') && !is_search()) { query_posts('post_type=portfolio', 'posts_per_page=-1'); } ?>
<?php if (have_posts()) : ?>
J'espère que mon anglais ne vous fait pas mal aux yeux ....
vous devrez modifier la requête sur les pages de termes de taxonomie pour obtenir votre type de message
essayer:
add_filter('pre_get_posts', 'filter_custom_taxonomy_posts');
function filter_custom_taxonomy_posts($query) {
if (is_tax('Your_Taxonomy_Name')) {
$query->set('post_type', 'portfolio');
$query->set('posts_per_page', -1);
}
return $query;
}