Cómo enumerar los nombres de todos los tipos de publicaciones personalizados (no publicaciones)

4

Tener algunos tipos de publicaciones personalizadas como "Projects", "Products" y "Events" Necesito enumerarlos en una página. Tenga en cuenta que no quiero enumerar ningún POST aquí! en su lugar, solo quiero consultar el nombre de todos los tipos de publicación personalizados y vincularlos a archive-projects.php , archive-products.php y archive-events.php para cada uno de ellos. ¿Puedes por favor dejarme saber cómo hacer eso? Gracias

    
pregunta Mona Coder 20.01.2015 - 08:28

1 respuesta

6

Obtén todos los tipos de publicaciones personalizadas:

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

Clasifíquelos por su nombre:

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
    );
}

Vincule los nombres de tipo de publicación a sus archivos si los archivos están realmente 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
        );
    }
}
    
respondido por el fuxia 20.01.2015 - 08:44

Lea otras preguntas en las etiquetas