随机添加到Wordpress查询

时间:2016-03-13 14:13:49

标签: php wordpress

我有一个现有的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' );
    }

}

我不知道怎么做?谢谢你的帮助

2 个答案:

答案 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' );