Obter lista de tipos de postagem personalizados registrados

Como posso obter uma lista de todos os tipos de postagem personalizados registrados e mostrá-los em qualquer página do modelo.

Eu tenho um código como esse.

 true, 'exclude_from_search' => false, '_builtin' => false ); $output = 'names'; // names or objects, note names is the default $operator = 'and'; // 'and' or 'or' $post_types = get_post_types($args,$output,$operator); $posttypes_array = array(); foreach ($post_types as $post_type ) { $posttypes_array[] = $post_type; } echo "
"; print_r($posttypes_array); echo "

"; get_footer(); ?>

Solutions Collecting From Web of "Obter lista de tipos de postagem personalizados registrados"

Seu código parece ser bom. No entanto, você pode tentar os códigos de seguimento para obter todas as postagens personalizadas

  $args = array( 'public' => true, '_builtin' => false, ); $output = 'names'; // names or objects, note names is the default $operator = 'and'; // 'and' or 'or' $post_types = get_post_types( $args, $output, $operator ); foreach ( $post_types as $post_type ) { echo '

' . $post_type . '

'; } ?>

Você também pode usar um monte de args para filtrar muito o seu resultado. Para obter listas de detalhes de args, você pode verificar a página oficial do WordPress Codex: https://codex.wordpress.org/Function_Reference/get_post_types

Se você deseja obter todos os tipos de postagem como uma lista, você precisa usar a function get_post_types e encaminhar os resultados com um foreach .

 < ?php // Get All Post Types as List foreach ( get_post_types( '', 'names' ) as $post_type ) { echo '

'.$post_type.''; } ?>

Essas 2 linhas de código podem listar todos os seus tipos de postagem registrados. Se você quiser saber mais sobre esta function get_post_types , visite a página oficial do wp codex: https://codex.wordpress.org/Function_Reference/get_post_types

 global $wp_post_types; $posttypes = array_keys( $wp_post_types ); // Remove _builtins or others $pt_remove = array("attachment","nav_menu_item","customize_changeset","revision"); foreach ( $posttypes as $posttype ): if ( in_array($posttype, $pt_remove) ) continue; $posttype_names[ $posttype ] = $posttype; endforeach; echo "
"; print_r($posttype_names); echo "

";

 < ?php $args = array( 'post_type' => 'clients', 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => 'clients_service', 'field' => 'slug', 'terms' => 'therapy' ) ) ); $testimonials = new WP_Query( $args ); if( $testimonials->have_posts() ) : ?> 
    < ?php while( $testimonials->have_posts() ) : $testimonials->the_post(); ?>
  • < ?php printf( '%1$s - %2$s', get_the_title(), get_the_content() ); ?>
  • < ?php endwhile; wp_reset_postdata(); ?>
< ?php else : esc_html_e( 'No clients in the therapy taxonomy!', 'text-domain' ); endif; ?>

Quando o novo WP_Query é chamado, os clientes relevantes são recuperados e podemos ignorá-los. No verso, simplesmente emitimos o título e o conteúdo do cliente em uma lista simples.