示例#1
0
/**
 * Returns an html calendar of events filtered by the array or query-string of arguments supplied. 
 * @param array|string $args
 * @return string
 */
function em_get_calendar($args = array())
{
    if (strpos($args, "=")) {
        // allows the use of arguments without breaking the legacy code
        $defaults = EM_Calendar::get_default_search();
        $args = wp_parse_args($args, $defaults);
    }
    return EM_Calendar::output($args);
}
 /**
  * Hooks into icl_ls_languages and fixes links for when viewing an events list page specific to a calendar day.
  * @param array $langs
  * @return array
  */
 public static function icl_ls_languages($langs)
 {
     global $wp_rewrite;
     //modify the URL if we're dealing with calendar day URLs
     if (!empty($_REQUEST['calendar_day']) && preg_match('/\\d{4}-\\d{2}-\\d{2}/', $_REQUEST['calendar_day'])) {
         $query_args = EM_Calendar::get_query_args(array_intersect_key(EM_Calendar::get_default_search($_GET), EM_Events::get_post_search($_GET, true)));
         if ($wp_rewrite->using_permalinks()) {
             //if using rewrites, add as a slug
             foreach ($langs as $lang => $lang_array) {
                 $lang_url_parts = explode('?', $lang_array['url']);
                 $lang_url_parts[0] = trailingslashit($lang_url_parts[0]) . $_REQUEST['calendar_day'] . '/';
                 $langs[$lang]['url'] = esc_url_raw(add_query_arg($query_args, implode('?', $lang_url_parts)));
             }
         } else {
             $query_args['calendar_day'] = $_REQUEST['calendar_day'];
             foreach ($langs as $lang => $lang_array) {
                 $langs[$lang]['url'] = esc_url_raw(add_query_arg($query_args, $lang_array['url']));
             }
         }
     }
     return $langs;
 }