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

时间:2017-11-18 11:39:24

标签: php wordpress

我已经设置了一个自定义帖子类型,用于在Wordpress中创建一个Staff目录。当我添加一个新的工作人员时,它们会自动按照所有帖子的顺序显示,这对于大多数类型的帖子类型都有意义。

使用Simple Custom Post Order重新排列帖子非常容易,但每次都很麻烦,所以我很想知道是否有人知道是否有办法按顺序自动添加新帖子?

使用functions.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' );

1 个答案:

答案 0 :(得分:0)

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

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

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

请注意,上述查询将对所有帖子查询(包括在管理员中)执行操作,这可能不是您想要的,因此您必须将$query->set()包装在逻辑中,以便它只运行在您想要的页面上。例如,要仅在使用人员CPT时更改顺序,请使用:

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

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

HTH