我是一名drupal開發人員,沒有機會使用WordPress。 我們遇到了同樣的問題,這是我們如何解決它的。
獲取您的自定義內容類型數據(WP默認api或自定義查詢),它將是一個對象數組。使用下面的函數對它們排序返回已排序的帖子數組。不知道,你需要在wordpress中實現這個鉤子。
/**
* Function to sort array by key
* sortArrayByKey($yourArray,"name",true); //String sort (ascending order)
* sortArrayByKey($yourArray,"name",true,false); //String sort (descending order)
* sortArrayByKey($yourArray,"id"); //number sort (ascending order)
* sortArrayByKey($yourArray,"count",false,false); //number sort (descending order)
*/
function sortArrayByKey(&$array, $key, $string = false, $asc = true)
{
if ($string) {
usort($array, function ($a, $b) use (&$key, &$asc) {
if ($asc) return strcmp(strtolower($a{$key}), strtolower($b{$key}));
else return strcmp(strtolower($b{$key}), strtolower($a{$key}));
});
} else {
usort($array, function ($a, $b) use (&$key, &$asc) {
if ($a[$key] == $b{$key}) {
return 0;
}
if ($asc) return ($a{$key} < $b{$key}) ? -1 : 1;
else return ($a{$key} > $b{$key}) ? -1 : 1;
});
}
}
,然後在你的鉤子,你可以調用
return $this->sortArrayByKey($posts, "surname");
功能,從這個答案抄這個功能:https://stackoverflow.com/a/39872303/3086531
同樣的事情發生在我身上也。 – Junaid
你的條件是否錯誤。首先嚐試在刪除ifs後執行此操作。 – shazyriver