Plugin personalizado – Consulta CPT – Mostrar resultados

Este código está entrando em um plugin de exemplo que eu estou criando como um teste usando CPT e imprimi-los em uma Página.

Tenho tentado obter print_r () para me dar um object. Os tipos de postagem personalizados são publicados – verificados. Os dados estão sendo armazenados no MySQL – verificados. Assim, o tipo de publicação está se registrando.

Por favor, forneça-me um novo conjunto de olhos para me dizer o que estou faltando na minha consulta.

add_action('init', 'all_custom_post_types'); function all_custom_post_types() { $types = array( // Pledge Items array('the_type' => 'testimonial', 'single' => 'Testimonial', 'plural' => 'Testimonials')); foreach ($types as $type) { $the_type = $type['the_type']; $single = $type['single']; $plural = $type['plural']; $labels = array( 'name' => _x($plural, 'post type general name'), 'singular_name' => _x($single, 'post type singular name'), 'add_new' => _x('Add New', $single), 'add_new_item' => __('Add New '. $single), 'edit_item' => __('Edit '.$single), 'new_item' => __('New '.$single), 'view_item' => __('View '.$single), 'search_items' => __('Search '.$plural), 'not_found' => __('No '.$plural.' found'), 'not_found_in_trash' => __('No '.$plural.' found in Trash'), 'parent_item_colon' => '' ); $args = array( 'labels' => $labels, 'public' => true, 'has_archive' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'hierarchical' => false, 'menu_position' => 5, 'supports' => array('title','editor','thumbnail','custom-fields','excerpt')); register_post_type($the_type, $args); } } //////////////////////// function testimonials_list() { if (is_page('9595')) { $the_query = new WP_Query( array( 'post_type' => 'Testimonials' ) ); while ( $the_query->have_posts() ) : $the_query->the_post(); print_r($the_query); endwhile; } } add_action('pre_get_posts','testimonials_list'); 

Solutions Collecting From Web of "Plugin personalizado – Consulta CPT – Mostrar resultados"

Experimentar:

  $the_query = new WP_Query( array( 'post_type' => 'Testimonials' ) ); 

Parece que você provavelmente precisará mudar isso para:

 $the_query = new WP_Query( array( 'post_type' => 'testimonial' ) ); 

Você precisa usar o nome que você criou quando olha para o tipo post_type

Seu problema atualmente é que pre_get_posts incêndios para cada consulta dentro de um pedido. Você está criando um loop infinito que termina com um erro fatal de falta de memory. Se você habilitar a debugging , você deve ver a mensagem de erro.

Sua function testimonials_list triggers para a primeira consulta em sua página e a condição is_page('9595') é atendida e você cria uma nova consulta, $the_query . Isso, por sua vez, triggers a mesma function testimonials_list , que também atende a is_page('9595') condicional e cria uma nova consulta. Isso ocorre repetidamente até o PHP ficar sem memory.

A resposta envolve uma verificação adicional, como is_main_query() , e / ou remove_action para remover a ação depois que ela é executada uma vez.