从自定义帖子类型存档中删除子帖子

时间:2013-11-06 作者:agis

我有一个自定义的帖子类型和这样一个页面,用于显示里面的帖子:

archive-(myCPT).php我已经创建了两个帖子,其中一个是《孩子》。如何在我的archive-(myCPT).php

以下是archive-(myCPT).php :

<?php 

        if( have_posts() ){ 
            // normal blog layout
                $x = 1;
                while ( have_posts() ){
                    the_post(); 
                    get_template_part( \'inc/post-format/content-debate\');
                    // advertising between posts
                    if($ad_posts_mode != \'none\'){
                        // take into account ad frequency
                        if (($x % $ad_posts_frequency) == 0){

                            switch ($ad_posts_mode) {
                                case \'image\':
                                    echo \'<div class="\'.(($ad_posts_box) ? \'box\' : \'\').\' between_posts"><a target="_blank" href="\'.of_get_option(\'ad_posts_image_link\').\'"><img src="\'.of_get_option(\'ad_posts_image\').\'"></a></div>\';
                                break;
                                case \'html\':
                                    echo \'<div class="\'.(($ad_posts_box) ? \'box\' : \'\').\' between_posts">\'.apply_filters(\'shortcode_filter\',do_shortcode(of_get_option(\'ad_posts_code\'))).\'</div>\';
                                break;
                            }
                        }
                    }
                    $x++;
                }
            }

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

当一个post(ony类型)是子级时,它的属性post_parent 是一个带有父级帖子ID的数字。没有父级的帖子有一个值0 相反因此,您可以测试此值:

if ( 0 === (int) $post->post_parent )
{
    // show the post
}     
另一个选项是启用过滤器pre_get_posts (未经测试,只是一个想法):

add_action( \'pre_get_posts\',\'hide_children\' );

function hide_children( $query ) 
{
    remove_action( \'pre_get_posts\', current_filter() );

    if ( is_admin() or ! $query->is_main_query() ) 
        return;

    if ( ! $query->is_post_type_archive( \'your_post_type_name\' ) )
        return;

    // only top level posts
    $query->set( \'post_parent\', 0 );
}

结束

相关推荐

List subpages in order

这可能是一个非常基本的问题,但我是一个初学者。如何按字母顺序列出子页面?我一共有14个子页面。这是我被告知要使用的,但我的页面乱七八糟。[subpages page=27 items=12 order=alphabetical desc]