【问题标题】:php script display orderphp脚本显示顺序
【发布时间】:2023-04-03 01:44:01
【问题描述】:

我有这段代码可以在 wordpress 中生成评级列表,我可以获取列表中每个公司的评级,但我无法按降序排列列表并将帖子数量限制为 5.. 请有任何建议吗?

 <?php
$reviews = apply_filters( 'glsr_get_reviews', [], [
    'order' => 'DESC',
    'orderby' => 'meta_value_key',
    'post_status' => 'publish',
    'post_type' => 'page', // change this as needed
    'posts_per_page' => 5, // change this as needed
]);

foreach( $reviews as $review ) {
    $reviewHtml = $review->build(); ?>
           
    <p><?php echo $reviewHtml->assigned_to; ?></p>
    <p><?php echo $reviewHtml->rating; ?></p>
    <?php echo '<br/>'; ?>
<?php wp_reset_postdata(); ?>
<?php } ?>

非常感谢

【问题讨论】:

  • 您是否希望 $reviews 的元素向后排序,然后仅显示数组中的前 5 个元素?
  • 是的,我希望 $reviews 按降序对项目进行排序,而前 5 个评级实际上是这样显示的 [link]ibb.co/G7FyHxJ

标签: php wordpress foreach widget


【解决方案1】:

由于您想按降序对数组进行排序并仅显示前五个元素,因此以下代码将为您完成。但我应该解释一下我做了什么。

  1. 首先我使用array_reverse() 函数反转数组,该函数将按降序对数组元素进行排序。
  2. 然后我初始化了名为$limit 的变量来限制要显示的元素数量。
  3. 我在foreach 循环中添加了条件if 语句,以在达到$limit 的最大值时跳出foreach 循环。 让我们知道它是否适合您,您可以复制并粘贴以下代码
    <?php
    $reviews = apply_filters( 'glsr_get_reviews', [], [
        'order' => 'DESC',
        'orderby' => 'meta_value_key',
        'post_status' => 'publish',
        'post_type' => 'page', // change this as needed
        'posts_per_page' => 5, // change this as needed
    ]);
    $reviews=array_reverse($reviews);//reverse the array itself.
    $limit=0;//initializing counter to track the number of review displayed.
    foreach( $reviews as $review ) {
        $reviewHtml = $review->build(); ?>  
        <p><?php echo $reviewHtml->assigned_to; ?></p>
        <p><?php echo $reviewHtml->rating; ?></p>
        <?php 
            echo '<br/>';
            wp_reset_postdata();
            $limit++;//increasing the limit position to the review that is already processd.
            if($limit==5){//check if limit is reached you can change this limit to whatever you need.
            break;//break the loop after 5 review has been displayed.
            }
        } 
    ?>

【讨论】:

  • 很遗憾这个脚本没有返回任何信息,显示了任何评分项
  • 它根本不显示任何数据?还是显示所有数据?
  • 嗨@Dav你能告诉我print_r($reviews)array_reverse($reviews)之后的结果吗
猜你喜欢
  • 2013-09-13
  • 1970-01-01
  • 2013-09-30
  • 2018-04-21
  • 2014-04-29
  • 2018-11-29
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
相关资源
最近更新 更多