0

I've created custom post type "Services" with 'hierarchical' => true,. My loop is simple:

    while (have_posts()) {
      the_post();
      get_template_part('content', get_post_type());
    }

In admin I have next structure:

  • Service 1
  • Service 2
    • Sub-service

The problem is that on Services page I have all of them. But I want only 1 level posts without children posts. And children posts should be inside parent post. How can I do that?

1 Answer 1

0

please add your Custom post type name here 'post_type' => 'Services', // required

<?php
    $args=array(
                'post_parent' => 0, // required
                'post_type' => 'Services', // required
                'orderby' => 'menu_order', // to display according to hierarchy
                'order' => 'ASC', // to display according to hierarchy
                'posts_per_page' => -1, // to display all because default is 10
    );
    $query = null;
    $query = new WP_Query( $args ); 

    if ( $query->have_posts() ) {
        while($query->have_posts()) {
            $query->the_post();
            $post_id=get_the_ID();
            $post=get_post($post_id,'ARRAY_A');                
            echo $post['ID'].': '.$post['post_title'].'<br>';
        }            
    }
 wp_reset_query($query);
?>
2
  • Is it possible to make this without hardcoding slug in WP_Query?
    – acidernt
    Commented Oct 30, 2017 at 10:15
  • NO. it is not possible. it must required Custom post type name. Commented Oct 30, 2017 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.