web/wp-content/plugins/acf-extended/includes/acfe-term-functions.php (43 lines of code) (raw):
<?php
if(!defined('ABSPATH')){
exit;
}
/**
* acfe_get_taxonomy_objects
*
* Query & retrieve taxonomies objects
*
* @param array $args
*
* @return array
*/
function acfe_get_taxonomy_objects($args = array()){
// vars
$return = array();
// Post Types
$taxonomies = acf_get_taxonomies($args);
// Choices
if(!empty($taxonomies)){
foreach($taxonomies as $taxonomy){
$taxonomy_object = get_taxonomy($taxonomy);
$return[ $taxonomy_object->name ] = $taxonomy_object;
}
}
return $return;
}
/**
* acfe_get_taxonomy_terms_ids
*
* Similar to acf_get_taxonomy_terms()
* Returns "array('256' => 'Category name')" instead of "array('category:category_name' => 'Category name')"
*
* @param array $taxonomies
*
* @return array
*/
function acfe_get_taxonomy_terms_ids($taxonomies = array()){
// force array
$taxonomies = acf_get_array($taxonomies);
// get pretty taxonomy names
$taxonomies = acf_get_taxonomy_labels($taxonomies);
// vars
$r = array();
// populate $r
foreach(array_keys($taxonomies) as $taxonomy){
// vars
$label = $taxonomies[ $taxonomy ];
$is_hierarchical = is_taxonomy_hierarchical($taxonomy);
$terms = acf_get_terms(array(
'taxonomy' => $taxonomy,
'hide_empty' => false
));
// bail early if no terms
if(empty($terms)){
continue;
}
// sort into hierachial order!
if($is_hierarchical){
$terms = _get_term_children(0, $terms, $taxonomy);
}
// add placeholder
$r[ $label ] = array();
// add choices
foreach($terms as $term){
$r[ $label ][ $term->term_id ] = acf_get_term_title($term);
}
}
// return
return $r;
}
/**
* acfe_get_term_level
*
* Retrive the Term Level number
*
* @param $term
* @param $taxonomy
*
* @return int
*/
function acfe_get_term_level($term, $taxonomy){
$ancestors = get_ancestors($term, $taxonomy);
return count($ancestors) + 1;
}