Ich habe einige benutzerdefinierte Sortieroptionen für das Mitgliederverzeichnis von buddypress implementiert. Das Problem, mit dem ich ein Problem habe, ist nach Nachname sortiert (ein xprofile-Feld). Wenn ich die Ergebnisse der Abfrage auf dem Bildschirm print_r
bin, sind die Benutzer-IDs in der Reihenfolge, in der ich sie anzeigen möchte, aber wenn ich die Seite besuche, sind die Mitglieder nicht in dieser Reihenfolge. Auf bp_ajax_querystring lesen Ich sehe, dass Sie ORDER und ORDERBY übergeben können, aber alles, was ich versucht habe, funktioniert nicht. Die Mitglieder sollten in alphabetischer Reihenfolge nach Nachnamen angezeigt werden.Buddypress ORDER BY benutzerdefinierte Sortieroption für Mitglieder Verzeichnis
Hier ist das Stück Code mit der Abfrage.
if($ch_querystring['type'] == 'alphabetical-last'){
global $wpdb;
$field_id = 518; //Last name field ID
$query = "SELECT user_id FROM " . $wpdb->prefix . "bp_xprofile_data WHERE field_id = " . $field_id . " ORDER BY " . $wpdb->prefix . "bp_xprofile_data.value ASC";
$custom_ids = $wpdb->get_col($query);
// convert the array to a csv string
$user_str = implode(",", $custom_ids);
echo '<pre>';
print_r($user_str); //Prints the ID's I would like the members to be displayed in
echo '</pre>';
$ch_querystring['include'] = $user_str;
//$ch_querystring['type'] = 'alphabetical';
$ch_querystring['per_page'] = 500;
$ch_querystring['exclude'] = '1,1101,1030';
//$ch_querystring['orderby'] = "ORDER BY FIELD(value," . $ch_querystring['include'] . ")"; //Doesnt Work
//$ch_querystring['order'] = 'DESC'; //ASC and DESC doesnt work
echo '<pre>';
print_r($ch_querystring);
echo '</pre>';
return $ch_querystring;
}
Denn hier Debuggen ist, was $ch_querystring
kehrt:
Array
(
[type] => alphabetical-last
[action] => alphabetical-last
[scope] => all
[page] => 1
[user_id] => 0
[search_terms] =>
[exclude] => 1,1101,1030
[per_page] => 500
[include] => 1511,1499,1477,1483,1,1512,1510,1482,1503,1514,1498,1502,1506,1484,1479,1492,1497,1488,1495,1508,1475,1481,1501,1515,1478,1491,1490,1505,1487,1509,1480,1507,1485,1493,1513,1500,1516,1496,1476,1489,1504,1494,1486,1474
[orderby] => ORDER BY FIELD(value,1511,1499,1477,1483,1,1512,1510,1482,1503,1514,1498,1502,1506,1484,1479,1492,1497,1488,1495,1508,1475,1481,1501,1515,1478,1491,1490,1505,1487,1509,1480,1507,1485,1493,1513,1500,1516,1496,1476,1489,1504,1494,1486,1474)
)
Hier ist ein Link es