【发布时间】:2025-05-15 03:30:01
【问题描述】:
也许这应该很容易,但我对如何以一种好的方式对这些数据进行排序有点迷茫。
我在 WordPress 模板中得到了这个查询来获取一些 post_meta:
$args = array(
'post_type' => 'page',
'fields' => 'ids',
'nopaging' => true,
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => array('page-provider.php'),
'compare' => 'IN',
),
'prijs_sort' => array(
'key' => 'rwp_user_score',
'type' => 'DECIMAL(10,2)',
'compare' => 'EXISTS'
),
),
);
通过我从该查询中获得的数据获得更多信息,我希望最终结果从高到低排序。
$pages = get_posts( $args );
foreach ( $pages as $page ) {
$get_average_score = get_post_meta( $page, 'rwp_user_score', true );
$gemiddelde_score = round($get_average_score, 1);
$get_review_count = get_post_meta( $page, $key = 'rwp_rating_0' , $single = false);
$get_review_count_aantal = array_count_values(array_column($get_review_count, 'rating_post_id'))[$page];
$name_provider = get_post_meta( $page, 'bedrijfsnaam_hosting_provider', false );
$gemiddeld_totaal = $gemiddelde_score * $get_review_count_aantal / 100;
echo implode(', ', $name_provider);
echo $gemiddeld_totaal;
var_dump($gemiddeld_totaal);
echo "<br/>";
}
wp_reset_postdata();
我得到了$name_provider; 和$gemiddeld_totaal;,我希望结果按$gemiddeld_totaal; 从高到低排序。我尝试了很多东西,但到目前为止没有运气。它是一个浮点数组,由于某种原因我无法对结果进行排序。
这是$gemiddeld_totaal;的var_dump的一部分:
Page_title_1 0.05float(0.05)
Page_title_2 0.784float(0.784)
Page_title_3 0.144float(0.144)
Page_title_4 0.066float(0.066)
Page_title_5 0.048float(0.048)
Page_title_6 0.048float(0.048)
如何按$gemiddeld_totaal; 对结果进行排序?而字段$name_provider;也应该按照$gemiddeld_totaal;的排序来排序。
编辑 结果应如下所示:
Name provider 1 - Average Total 1
Name provider 2 - Average Total 2
Name provider 3 - Average Total 3
编辑 2(再添加一个数据字段)
在foreach ( $pages as $page ) {
我得到了另一个 foreach 的输出中需要的另一个数据字段。
$shortcode = do_shortcode("[rwp_users_rating_stars id='0' post=\"$page\"]");
我尝试了一些东西,但似乎无法弄清楚如何添加它。这是 foreach 中的新行。你能解释一下怎么做吗?也许我会更好地理解它。
【问题讨论】:
标签: php wordpress sorting arguments