PHP newb在这里,需要一些指导。我正在使用BuddyPress和高级自定义字段(ACF)。我有一个值为true / false的ACF字段“ new_user”。我试图过滤我的BuddyPress成员循环以仅显示值为'new_user'= true的用户。
这里有2个代码示例。
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的中间代码:
function 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 '';
}
当然,我也乐于以其他方式解决这个问题。我希望这很清楚。