php - 对 WP 查询结果进行排序
问题描述
我正在我的 wordpress 网站上运行用户查询以列出销售代表。基本上我有一个页面列出了所有处于“销售代表”角色的用户,并使用 jQuery 根据状态下拉选择器隐藏/显示它们。
在未覆盖领土的任何州,我都需要将公司办公室列为结果之一。公司办公室被列为销售代表,其 ID 为 11。我遇到的问题是我总是需要公司办公室作为最后一个结果列出。
公司办公室覆盖的区域因州而异,因此我无法运行查询,然后将公司办公室扔到最后。它需要列出特定于所选状态的元数据,因此它必须是查询的一部分。
这是我到目前为止所拥有的:
$args = array();
$user_query = new WP_User_Query( array( 'role' => 'SalesRep' ) );
if ( ! empty( $user_query->get_results() ) ) {
foreach ( $user_query->get_results() as $user ) { ?>
<div class="rep hide" data-category="
<?php
if( have_rows('states', 'user_'.$user->ID) ):
while ( have_rows('states', 'user_'.$user->ID) ) : the_row();
echo the_sub_field('state', 'user_'.$user->ID) . ' ';
endwhile;
else :
endif;
?> ">
<p><strong><?php echo $user->display_name;?></strong>
<?php
$has_area = false;
if( have_rows('states', 'user_'.$user->ID) ):
while ( have_rows('states', 'user_'.$user->ID) ) : the_row();
echo '<span class="stateID" data-category="'.get_sub_field('state', 'user_'.$user->ID).'">';
the_sub_field('area', 'user_'.$user->ID);
echo '</span>';
endwhile;
else :
endif; ?>
<a href="mailto:<?php echo $user->user_email;?>"><?php echo $user->user_email;?><br />
<a href="tel:1-<?php the_field('phone_number', 'user_'.$user->ID)?>">
<?php the_field('phone_number', 'user_'.$user->ID)?></a>
</div>
<?php }
} else {
echo 'No Sales Reps Found.';
} ?>
这段代码很好用,但我不知道如何将公司办公室推到最后。我需要使用uasort吗?或者我应该查找 post->ID 并在它 == 11 时取消设置它?任何帮助将不胜感激。
非常感谢
解决方案
如果您有与 SalesRep 角色关联的元数据,则可以将元数据添加到用户查询并根据该元值对结果进行排序。示例部分中的第一项显示将元添加到查询 https://codex.wordpress.org/Class_Reference/WP_User_Query
有一个 Order & Orderby 参数部分显示如何使用 orderby 对检索到的用户进行排序。
推荐阅读
- arrays - 如何获取 JSON 数组中的所有唯一字段名称?
- java - 从 GWT 中的不同小部件触发处理程序事件
- firebase - Firebase Analytics 用户每天的启动次数
- android - 如何通过styles.xml改变MaterialButton的背景颜色
- json - 将 json 注解转换为 coco 格式
- android - 将 Firebase BOM 版本从 26.1.1 升级到 26.3.0 会增加 Android 中的应用启动时间吗?
- javascript - 如何在 JavaScript Cypress 测试中重构承诺?
- curl - 我可以强制 CURL 以 UTF-8 显示/保存收到的内容吗?
- math - 如何实现大幂运算?(例如在 RSA 中)
- react-native - 对于 react-native 而不是 ... react-native-video 有什么好的视频播放器吗