方案: 我有一个archive-job.php模板和一个pre_get_post函数:
function cbk_job_archive_override($query) {
if ( is_post_type_archive( 'job' ) && $query->is_main_query() ) {
$query->set('orderby', 'menu_order');
$query->set('order', 'ASC');
}
}
工作'帖子类型有2个额外的自定义元字段,' cmb_job_featured'和' cmb_job_publishdate'我想订购而不是menu_order。
' cmb_job_featured'自定义元字段可以有“是”和“是”。或者没有'值
&c; cmb_job_publishdate'自定义元字段以此日期格式保存:' yyyy / mm / dd'
我需要所有有' cmb_job_featured'设置为“是”首先显示,然后通过“cmb_job_publishdate”显示所有其他帖子。最近的第一次。
我需要将我的pre_get_post函数编辑成一些如何组合:
$query->set( 'orderby', 'meta_value' );
$query->set( 'meta_key', 'cmb_job_featured' );
$query->set( 'order', 'DESC' );
和
$query->set( 'orderby', 'meta_value' );
$query->set( 'meta_key', 'cmb_job_publishdate' );
$query->set( 'order', 'ASC' );