自定义帖子类型的新帖子是否可以按顺序最后添加



我已经设置了一个自定义帖子类型,用于在Wordpress中创建员工目录。当我添加新员工时,他们会自动按所有帖子的顺序首先出现,这对于大多数类型的帖子类型都是有意义的。

使用简单的自定义帖子顺序重新排列帖子非常容易,但每次都很麻烦,所以我很好奇是否有人知道是否有办法按顺序自动添加新帖子?

使用函数中最基本的代码.php添加帖子类型:

function create_posttype() {
register_post_type( 'staff',
    array(
        'labels' => array(
            'name' => __( 'Staff' ),
            'singular_name' => __( 'Staff' )
        ),
        'public' => true,
        'has_archive' => true,
        'rewrite' => array('slug' => 'staff'),
    )
);
}
add_action( 'init', 'create_posttype' );

实际上有很多方法可以做到这一点,但这里有一种:

添加一个操作以更改查询中的 ORDER 参数,如下所示。

add_action('pre_get_posts', function( $query ) {
    $query->set('order', 'ASC');
});

请注意,上述查询将作用于所有 POST 查询(包括在管理员中(,这可能不是您想要的,因此您必须将$query->set()包装在逻辑中,以便它仅在您想要的页面上运行。例如,若要仅在与员工 CPT 合作时更改顺序,请使用以下命令:

add_action('pre_get_posts', function( $query ) {
    if ( 'staff' == $query->query['post_type'] ) {
        $query->set('order', 'ASC');
    }
});

另请注意,在此操作中,$query是通过引用传递的,而不是通过赋值传递的,因此无需使用 global 关键字,也无需返回任何内容。

相关内容

最新更新