可以添加最新的自定义帖子类型的最新帖子?
问题描述:
我已经设置了一个自定义的帖子类型,用于在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');
答
其实有很多方法可以做到这一点,但这里是一个:
添加操作来改变在你的查询中的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