我有一个现有的Wordpress页面,用于显示下面pre_get_post功能的页面。查询过滤网站中所有帖子的自定义帖子类型" branchenbuch"并命名为DESC的字段profiltyp(有徽标的人和没有徽标的人)这样所有记录都以这个特定的顺序显示(首先是带有徽标的人)。现在在这些结果中(带有徽标的人)我也希望结果随机显示,并不总是首先出现相同的帖子。
目前这是我的funtions.php:
add_action( 'pre_get_posts', 'custom_post_type_archive' );
function custom_post_type_archive( $query ) {
if( $query->is_main_query() && !is_admin() && is_post_type_archive( 'branchenbuch' ) ) {
$query->set( 'meta_key', 'profiltyp' );
$query->set( 'orderby', 'meta_value' );
$query->set( 'order', 'DESC' );
}
}
我不知道怎么做?谢谢你的帮助
答案 0 :(得分:0)
我不确定我理解您的问题...但您可以使用'orderby' => 'rand'
在WordPress中随机排序查询结果:
if( $query->is_main_query() && !is_admin() && is_post_type_archive( 'branchenbuch' ) ) {
$query->set( 'meta_key', 'profiltyp' );
$query->set( 'orderby', 'rand' );
}
详细了解orderby
个选项in the Codex。
答案 1 :(得分:0)
使用代码
获取您需要在数组顶部显示的所有帖子,让我们说$allowed_posts = array(121,233,144,900);
$query->set( 'post__in', $allowed_posts );
$query->set( 'meta_key', 'profiltyp' );
$query->set( 'orderby', 'rand' );