/** * * get cats and taxanomies data from the input */ private function getCatAndTaxData($catIDs) { if (is_string($catIDs)) { $catIDs = trim($catIDs); if (empty($catIDs)) { return array("tax" => "", "cats" => ""); } $catIDs = explode(",", $catIDs); } $strCats = ""; $arrTax = array(); foreach ($catIDs as $cat) { if (strpos($cat, "option_disabled") === 0) { continue; } $pos = strrpos($cat, "_"); if ($pos === false) { UniteFunctionsBiz::throwError("The category is in wrong format"); } $taxName = substr($cat, 0, $pos); $catID = substr($cat, $pos + 1, strlen($cat) - $pos - 1); //translate catID to current language if wpml exists $catID = UniteWpmlBiz::changeCatIdByLang($catID, $taxName); $arrTax[$taxName] = $taxName; if (!empty($strCats)) { $strCats .= ","; } $strCats .= $catID; } $strTax = ""; foreach ($arrTax as $taxName) { if (!empty($strTax)) { $strTax .= ","; } $strTax .= $taxName; } $output = array("tax" => $strTax, "cats" => $strCats); return $output; }
/** * * get post categories list assoc - id / title */ public static function getCategoriesAssoc($taxonomy = "category") { if (strpos($taxonomy, ",") !== false) { $arrTax = explode(",", $taxonomy); $arrCats = array(); foreach ($arrTax as $tax) { $cats = self::getCategoriesAssoc($tax); $arrCats = array_merge($arrCats, $cats); } return $arrCats; } //$cats = get_terms("category"); $args = array("taxonomy" => $taxonomy); $cats = get_categories($args); $arrCats = array(); foreach ($cats as $cat) { $numItems = $cat->count; $itemsName = "items"; if ($numItems == 1) { $itemsName = "item"; } $title = $cat->name . " ({$numItems} {$itemsName})"; $id = $cat->cat_ID; $id = UniteWpmlBiz::getIdFromLangId($id, $cat->taxonomy); $arrCats[$id] = $title; } return $arrCats; }