如何在‘Foreach’循环之前对模板函数完成的查询进行排序(Orderby)?

时间:2018-02-02 作者:Mateus Oliveira

在foreach循环的输出开始之前,如何对模板函数执行的查询中保留的元素数组进行排序?我想按帖子标题对我的元素进行排序。这是我的代码:

<?php
$show_subproperties = apushome_get_config(\'show_property_sub\', true);
if (!$show_subproperties) {
    return;
}
$post = get_post();
$author_id = $post->post_author;
$subproperties = Realia_Post_Type_Property::get_properties($author_id, "publish", get_the_ID()); ?>

<?php if (is_array($subproperties) && !empty($subproperties)) : ?>
    <div class="property-subproperties">
        <h3><?php echo esc_html__(\'Módulos Individuais\', \'apushome\'); ?></h3>
        <div class="clearfix">
            <?php foreach ($subproperties as $subproperty) : ?>
            <div class="col-md-4 col-lg-3 col-sm-6 col-xs-12 modulos-i">
                <?php echo Realia_Template_Loader::load(\'properties/box\', array(\'property\' => $subproperty)); ?>
            </div>
            <?php endforeach; ?>
        </div><!-- /.row -->
    </div><!-- /.subproperties -->
<?php endif ?>

2 个回复
SO网友:swissspidy

不知道是什么Realia_Post_Type_Property::get_properties() 执行并返回,这有点难以回答。但本质上,您希望使用PHP对数组进行排序。

除非Realia_Post_Type_Property::get_properties() 允许您获得已排序的帖子列表,您最好的选择可能是使用wp_list_sort().

该函数根据一个或多个orderby参数对对象列表进行排序。假设$subproperties 是的数组WP_Post 对象,您应该能够执行以下操作:

$subproperties = wp_list_sort( $subproperties, array( \'post_title\' => \'DESC\' ) );

SO网友:Mateus Oliveira

当我最终意识到$子属性只是一个简单的数组时,我找到了一个非常简单的解决方案:

            <?php asort($subproperties);
        foreach ($subproperties as $subproperty) : ?>
            <div class="col-md-4 col-lg-3 col-sm-6 col-xs-12 modulos-i">
                <?php echo Realia_Template_Loader::load(\'properties/box\', array(\'property\' => $subproperty)); ?>
            </div>
            <?php endforeach; ?>
        </div><!-- /.row -->
    </div><!-- /.subproperties -->

结束

相关推荐

是否可以将定制的SQL用于单个post.php?

是否可以在单个页面中使用自定义SQL。php文件来返回所需的单个帖子的数据?就我的目的而言,在$querystr中有一些数据操作,使用php很难再现,而使用简单的SQL很容易实现。如果我把下面的代码放在一页中。php文件,我目前有一个完整的结果集,每个帖子一行。我只想提取与用户单击的页面相关的行/记录/帖子。<?php $querystr = \" SELECT custom_sql_column_name_here FROM custom_sql