/**
  * @param string|array $args
  * @param array $maybe_args
  * @param string $TermClass
  * @return mixed
  */
 public static function get_terms($args = null, $maybe_args = array(), $TermClass = 'TimberTerm')
 {
     if (is_string($maybe_args) && !strstr($maybe_args, '=')) {
         //the user is sending the $TermClass in the second argument
         $TermClass = $maybe_args;
     }
     if (is_string($maybe_args) && strstr($maybe_args, '=')) {
         parse_str($maybe_args, $maybe_args);
     }
     if (is_string($args) && strstr($args, '=')) {
         //a string and a query string!
         $parsed = TimberTermGetter::get_term_query_from_query_string($args);
         if (is_array($maybe_args)) {
             $parsed->args = array_merge($parsed->args, $maybe_args);
         }
         return self::handle_term_query($parsed->taxonomies, $parsed->args, $TermClass);
     } else {
         if (is_string($args)) {
             //its just a string with a single taxonomy
             $parsed = TimberTermGetter::get_term_query_from_string($args);
             if (is_array($maybe_args)) {
                 $parsed->args = array_merge($parsed->args, $maybe_args);
             }
             return self::handle_term_query($parsed->taxonomies, $parsed->args, $TermClass);
         } else {
             if (is_array($args) && TimberHelper::is_array_assoc($args)) {
                 //its an associative array, like a good ole query
                 $parsed = TimberTermGetter::get_term_query_from_assoc_array($args);
                 return self::handle_term_query($parsed->taxonomies, $parsed->args, $TermClass);
             } else {
                 if (is_array($args)) {
                     //its just an array of strings or IDs (hopefully)
                     $parsed = TimberTermGetter::get_term_query_from_array($args);
                     if (is_array($maybe_args)) {
                         $parsed->args = array_merge($parsed->args, $maybe_args);
                     }
                     return self::handle_term_query($parsed->taxonomies, $parsed->args, $TermClass);
                 } else {
                     if (is_null($args)) {
                         return self::handle_term_query(get_taxonomies(), array(), $TermClass);
                     }
                 }
             }
         }
     }
     return null;
 }
Exemple #2
0
 /**
  * Get terms.
  *
  * @param string|array $args
  * @param array   $maybe_args
  * @param string  $TermClass
  * @return mixed
  */
 public static function get_terms($args = null, $maybe_args = array(), $TermClass = 'TimberTerm')
 {
     return TimberTermGetter::get_terms($args, $maybe_args, $TermClass);
 }