希望根据数字meta_key按升序对数组进行排序。
这是基于Facet WP插件的功能:https://facetwp.com/preserving-sticky-posts-in-templates/
如您所见,Facet WP提供的代码如下:
function fwp_preserve_sticky_posts( $query ) {
if ( 'ids' == $query->get( 'fields' ) ) {
return;
}
if ( isset( $query->query_vars['show_sticky'] ) ) {
$matches = array();
$sticky = (array) get_option( 'sticky_posts' );
$post_in = (array) $query->query_vars['post__in'];
foreach ( $sticky as $post_id ) {
if ( false !== ( $pos = array_search( $post_id, $post_in ) ) ) {
$matches[ $pos ] = $post_id;
}
}
ksort( $matches ); // preserve order of sticky posts
$query->query_vars['orderby'] = 'post__in';
$query->query_vars['post__in'] = array_merge( $matches, $query->query_vars['post__in'] );
}
}
add_action( 'pre_get_posts', 'fwp_preserve_sticky_posts' );
这实现了分离粘性和普通帖子的目的,除了我需要能够对$ matches数组的返回进行排序,但是符合以下条件,而不是发布ID:
'meta_key' => '_meta_date',
'orderby' => 'meta_value_num',
'order' => 'ASC'
我已经确定我需要在$ match上替换ksort,但我不知道如何。请有人帮忙吗?
谢谢!