无论发生什么,似乎都无法运行:

$args = array(...);
$unitsQuery = new WP_Query($args);

function customCompare($a, $b)
{
    return strcasecmp($a->post_title,$b->post_title);
}

$unitsQuery->posts = usort($unitsQuery->posts, 'customCompare');

if( $unitsQuery->have_posts() ) {
    while($unitsQuery->have_posts()) : $unitsQuery->the_post();?>

    <div><?php the_title(); ?></div>

    <?php endwhile;
}
wp_reset_postdata();

一切都很好,不用打电话。我真的需要在查询后运行自定义排序。

最佳答案

注意usort()只返回truefalse,因此使用此行:

$unitsQuery->posts = usort($unitsQuery->posts, 'customCompare');

你在重写帖子。更改为:
usort( $unitsQuery->posts, 'customCompare' );

我想知道为什么必须使用usort而不是orderbyWP_Query参数或posts_orderby过滤器。

09-25 15:17