从Archive.php中排除子页面

时间:2018-05-13 作者:Sam

我创建了一个称为“服务”的分层自定义帖子类型。以下是我在自定义帖子类型中添加的页面:

服务1服务子(服务1为父)服务子(服务1为父)服务子(服务1为父)服务子(服务3为父)服务子(服务3为父)服务子(服务3为父)服务子级(服务4是父级)服务子级(服务4是父级)是否可以从存档服务中排除子页。php?我希望通过使用pre_get_posts, 但这似乎不可能。

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

当然这是可能的。你所要做的就是post_parent 参数到0.

function remove_children_from_archive( $query ) {
    if ( ! is_admin() && $query->is_main_query() && is_post_type_archive(\'my_custom_post_type\') ) {
        // of course you\'ll have to change my_custom_post_type to real slug - probably services
        $query->set( \'post_parent\', 0 );
    }
}
add_action( \'pre_get_posts\', \'remove_children_from_archive\' );

结束

相关推荐

‘Recent Posts’链接在新窗口中打开,而不复制‘WP_WIDGET_Recent_Posts’类

我有一个要求,就是在一个新窗口中打开“最近的帖子”小部件上的链接(如果有选择的话,我不会实现这一点,但我被要求这样做)。我发现要实现这种行为,我需要从class-wp-widget-recent-posts.php 进入我的孩子主题functions.php 并对其进行修改以创建行为。为了在新窗口中打开链接,这似乎是一种冗长的方式。是否有一种更直接的方法不存在重新实现整个类的潜在缺点(如果WP在更新中更改了一些基本内容,那么将来可能会中断),并且不需要修改原始类class-wp-widget-recent