Comment répertorier tous les noms de types d'articles personnalisés (pas d'articles)

4

Disposer de types de publication personnalisés, tels que "Projects", "Products" et "Events" , je dois les répertorier dans une page. S'il vous plaît soyez avisé que je ne veux pas lister de POST ici! au lieu de cela, je veux juste interroger le nom de tous les types de messages personnalisés et les lier à archive-projects.php , archive-products.php et archive-events.php pour chacun d'eux. Pouvez-vous s'il vous plaît laissez-moi savoir comment faire cela? Merci

    
posée Mona Coder 20.01.2015 - 08:28

1 réponse

6

Obtenir tous les types de publication personnalisés:

$post_types = get_post_types( array ( '_builtin' => FALSE ), 'objects' );

Triez-les par leur nom:

uasort( $post_types, 'sort_cpts_by_label' );

/**
 * Sort post types by their display label.
 *
 * @param object $cpt1
 * @param object $cpt2
 * @return int
 */
function sort_cpts_by_label( $cpt1, $cpt2 ) {

    return strcasecmp(
        $cpt1->labels->name,
        $cpt2->labels->name
    );
}

Liez les noms de type d'article à leurs archives si celles-ci sont réellement disponibles:

foreach ( $post_types as $post_type => $properties ) {
    if ( $properties->has_archive ) {
        printf(
            '<a href="%1$s">%2$s</a><br>',
            get_post_type_archive_link( $post_type ),
            $properties->labels->name
        );
    }
}
    
réponse donnée fuxia 20.01.2015 - 08:44

Lire d'autres questions sur les étiquettes