wordpress - 如何通过 ACF 字段过滤 BuddyPress 成员循环?
问题描述
PHP新手在这里,寻找一些指导。我正在使用 BuddyPress 和高级自定义字段 (ACF)。我有一个值为真/假的 ACF 字段“new_user”。我正在尝试过滤我的 BuddyPress 成员循环以仅显示值为 'new_user' = true 的用户。
这里有 2 个代码示例。
- 标准的 BP 成员循环。我的想法是,如何首先通过 ACF 'new_user' = true 查询我的用户,然后启动 bp 成员循环?:
if ( bp_has_members() ) : // some code goes here endif; while ( bp_members() ) : bp_the_member(); //OUTPUT MEMBERS LIST HERE endwhile;
这是一个按 Buddypress 扩展用户字段过滤的 BP 功能。我认为这里的想法是用适当的 ACF 代码替换中间特定于 xprofile_get_field 的代码:
功能 my_custom_ids( $field_name, $field_value = '' ) {
if ( empty( $field_name ) ) return ''; global $wpdb; $field_id = xprofile_get_field_id_from_name( $field_name ); if ( !empty( $field_id ) ) $query = "SELECT user_id FROM " . $wpdb->prefix . "bp_xprofile_data WHERE field_id = " . $field_id; else return ''; if ( $field_value != '' ) $query .= " AND value LIKE '%" . $field_value . "%'"; /* LIKE is slow. If you're sure the value has not been serialized, you can do this: $query .= " AND value = '" . $field_value . "'"; */ $custom_ids = $wpdb->get_col( $query ); if ( !empty( $custom_ids ) ) { // convert the array to a csv string $custom_ids_str = 'include=' . implode(",", $custom_ids); return $custom_ids_str; } else return ''; }
当然,我也愿意以另一种方式解决这个问题。我希望这很清楚。
解决方案
推荐阅读
- flutter - 颤振/飞镖持续时间差异(以小时为单位)
- javascript - [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头 - 尝试请求时出错
- python - python ibm语音到文本没有结果
- react-native-android - 在android上运行react native项目时出现错误
- spring - Spring mvc 代理请求
- spring-boot - Spring Boot - 如果重新生成主键,Azure Cosmos DB Change Feed 进程将失败
- pandas - 按组更改数据框
- r - 在ggplot上将条形图叠加到另一个上
- excel - 使用 MsgBox 时出现运行时错误“1004”方法“OnTime”
- reporting-services - 我在括号中有一些值我需要对 ssrs 中的值求和