我已经设置了一个自定义帖子类型,用于在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' );
答案 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