web-dev-qa-db-fra.com

Type de message personnalisé: Comment afficher la même taxonomie?

N'y a-t-il pas une structure de lien permanent qui liste essentiellement tout categoriesd'un certain post type?

function create_faqs_post_type() {
    register_post_type( 'faqs',
        array(
            'labels' => array(
                'name' => __( 'FAQs' ),
                'singular_name' => __( 'FAQ' )
            ),
        'public' => true,
        'menu_position' => 5,
        'rewrite' => array('slug' => 'the-faqs')
        )
    );
}
add_action( 'init', 'create_faqs_post_type' );

function create_faq_taxonomy() {
    register_taxonomy(
        'faqs_categories',
        'faqs',
        array(
            'hierarchical' => true,
            'label' => 'FAQs Categories',
            'query_var' => true
        )
    );
}
add_action( 'init', 'create_faq_taxonomy' );

C'est le code que j'ai utilisé pour enregistrer le type de publication personnalisé faqsname__, puis pour enregistrer une taxonomie.

N'y a-t-il pas une structure de permalien qui va essentiellement lister automatiquement tous les faqsd'une taxonomie donnée? Ou dois-je créer un modèle personnalisé et l’interroger de manière spécifique?

1
dcolumbus

@dcolumbus

Vous pouvez faire une réécriture permanente lorsque vous enregistrez la taxonomie en utilisant les éléments suivants:

'rewrite' => array ('slug' => 'faqcategories', 'with_front' => false),

Ensuite, site.com/faqcategories devrait les extraire et site.com/faqcategories/easy devrait vous les procurer pour le terme "facile".

Si je vous comprends bien.

1
Christopher

Vous pouvez utiliser quelque chose comme ceci:

<?php
$catArgs = array(
        'taxonomy'=>'faqs_categories'
        // post_type isn't a valid argument, no matter how you use it.
        );
$categories = get_categories('taxonomy=faqs_categories&post_type=faqs'); ?>
<?php foreach ($categories as $category) : ?>
  <div class="faqs-cat"><?php echo $category->name; ?></div>
    <?php
    $postArgs = array(
        'orderby' => 'title',
        'order' => 'ASC',
        'post_type'=>'faqs',
        'cat'=>$category->cat_ID,
        'tax_query' => array(
                array(
                    'taxonomy' => 'faqs_categories'
                )
            )
        );
     query_posts($postArgs) ?>
    <ul>
         <?php while(have_posts()): the_post(); ?>
        <li><a><?php the_title() ?></a></li>
         <?php endwhile; ?>
    </ul>
<?php endforeach; ?>
<?php wp_reset_query();

Edité mais source originale ici . Bonne chance, j'espère que cela aide.

0
David