开发者

WordPress WP_Query - Query parent pages only

I'm using a WP_Query to query my custom post type posts. This custom post type has parent and children pages. I'm trying to pull the first parent page. How w开发者_运维问答ould I do this?


$parent_only_query = new WP_Query(array(
    'post_type' => 'my-custom-post-type',
    'post_parent' => 0
));

while ($parent_only_query->have_posts()){
    $parent_only_query->the_post();
    // etc...
}

wp_reset_query(); // if you're not in your main loop! otherwise you can skip this


You can achieve this functionality by making a query to database;

<?php

$parent_posts= $wpdb->get_results( "SELECT ID, post_title FROM $wpdb->posts WHERE post_parent=0 AND post_type='page' AND post_status='publish' ORDER BY menu_order ASC" );

foreach($parent_posts as $record){ ?>

    <a href="<?php echo get_permalink($record->ID) ?>" >
        <h1><?php echo $record->post_title; ?></h1>
    </a>
    <p><?php echo $record->post_title;?></p>

<?php } ?>

Note:- $wpdb is global variable.


Once you have run your query and you are looping through it, you can access the ID of the parent of each post with $post->post_parent, and if that is not null you can get that post content with get_post():

<?php
if($post->post_parent):
    $parent = get_post($post->post_parent);
?>
<h2><?=$parent->post_title;?></h2>
<p><?=$parent->post_content;?></p>
<?php
endif;
?>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜