public static function mdf_custom($atts) { extract(shortcode_atts(array('orderby' => self::$default_order_by, 'order' => self::$default_order, 'page' => 1, 'template' => '', 'post_type' => 'post', 'per_page' => self::get_setting('results_per_page'), 'pagination' => 'b', 'meta_data_filter_cat' => 0, 'taxonomies' => '', 'panel_id' => 0, 'essential' => 0), $atts)); if (empty($template)) { wp_die(__('Please set template option in shortcode!', 'meta-data-filter')); } //$meta_query = array('relation' => 'AND'); $meta_query = array(); if ($meta_data_filter_cat > 0) { $buffer = array('key' => 'meta_data_filter_cat', 'value' => $meta_data_filter_cat, 'compare' => '='); $meta_query[] = $buffer; } //*** //*** fix for reset data in ajax mode 16-01-2015 if (isset($_REQUEST['mdf_current_term_id']) and $_REQUEST['mdf_current_term_id'] > 0 and defined('DOING_AJAX') && DOING_AJAX) { if (!empty($_REQUEST['mdf_current_tax'])) { $taxonomies = $_REQUEST['mdf_current_tax'] . '+' . $_REQUEST['mdf_current_term_id']; } } if (!empty($taxonomies)) { $taxonomies = MetaDataFilter::add_additional_taxonomies($taxonomies, false, '+'); } else { $taxonomies = array(); } //*** $args = array('post_type' => $post_type, 'post_status' => array('publish'), 'ignore_sticky_posts' => self::get_setting('ignore_sticky_posts'), 'posts_per_page' => $per_page, 'orderby' => $orderby, 'order' => $order, 'meta_query' => $meta_query, 'tax_query' => $taxonomies); //fix - rewrite if under searching $args = MetaDataFilter::rewrite_search_query_args($args); $order_by_array = self::$allowed_order_by; $orderby = $args['orderby']; $order = $args['order']; if (in_array($orderby, $order_by_array)) { unset($args['meta_key']); } //+++ $pp = $page; if (get_query_var('page')) { $pp = get_query_var('page'); } if (get_query_var('paged')) { $pp = get_query_var('paged'); } if ($pp > 1) { $args['paged'] = $pp; } else { $args['paged'] = isset($_REQUEST['content_redraw_page']) ? $_REQUEST['content_redraw_page'] : (get_query_var('page') ? get_query_var('page') : $page); } //+++ $_REQUEST['content_redraw_page'] = $args['paged']; $args['posts_per_page'] = $per_page; if (!empty($taxonomies)) { $args['tax_query'] = array_merge($args['tax_query'], $taxonomies); } //*** fix for ordering by meta key if (!in_array($orderby, $order_by_array)) { $args['orderby'] = 'meta_value_num meta_value'; if (!isset($args['meta_key'])) { if (!defined('DOING_AJAX')) { $args['meta_key'] = $orderby; } else { $args['meta_key'] = isset($_REQUEST['order_by']) ? $_REQUEST['order_by'] : $orderby; } } } //*** $_REQUEST['mdf_panel_id'] = $panel_id; $GLOBALS['mdf_args'] = $args; $GLOBALS['essential'] = $essential; $mdf_loop = new WP_Query($args); $GLOBALS['mdf_loop'] = $mdf_loop; $_REQUEST['meta_data_filter_found_posts'] = $mdf_loop->found_posts; //*** //for wrong page numbers if (!$mdf_loop->found_posts) { $args['paged'] = 1; $_REQUEST['content_redraw_page'] = $args['paged']; $args['posts_per_page'] = $per_page; $mdf_loop = new WP_Query($args); $GLOBALS['mdf_loop'] = $mdf_loop; $_REQUEST['meta_data_filter_found_posts'] = $mdf_loop->found_posts; } //+++ ob_start(); get_template_part('mdf_templates/' . $template . '/index'); $out = ob_get_clean(); wp_reset_postdata(); //*** $_REQUEST['mdtf_in_shortcode'] = 1; if ($mdf_loop->found_posts > 0) { switch ($pagination) { case 'b': $result = $out . '<br />' . mdtf_pagination($mdf_loop); break; case 't': $result = mdtf_pagination($mdf_loop) . $out; break; case 'tb': $result = mdtf_pagination($mdf_loop) . $out . '<br />' . mdtf_pagination($mdf_loop); break; default: break; } } else { $result = __('No items found', 'meta-data-filter'); } return $result; }
public static function mdf_gmap_shortcode_const($atts) { extract(shortcode_atts(array('page' => 1, 'post_type' => 'post', 'per_page' => MetaDataFilter::get_setting('results_per_page'), 'meta_data_filter_cat' => 0, 'taxonomies' => ''), $atts)); $meta_query = array(); if ($meta_data_filter_cat > 0) { $buffer = array('key' => 'meta_data_filter_cat', 'value' => $meta_data_filter_cat, 'compare' => '='); $meta_query[] = $buffer; } //*** if (!empty($taxonomies)) { $taxonomies = MetaDataFilter::add_additional_taxonomies($taxonomies, false, '+'); } else { $taxonomies = array(); } //*** $args = array('post_type' => $post_type, 'post_status' => array('publish'), 'ignore_sticky_posts' => self::get_setting('ignore_sticky_posts'), 'posts_per_page' => $per_page, 'meta_query' => $meta_query, 'tax_query' => $taxonomies, 'fields' => 'ids'); //fix - rewrite if under searching $args = MetaDataFilter::rewrite_search_query_args($args); //+++ $pp = $page; if (get_query_var('page')) { $pp = get_query_var('page'); } if (get_query_var('paged')) { $pp = get_query_var('paged'); } if ($pp > 1) { $args['paged'] = $pp; } else { $args['paged'] = isset($_REQUEST['content_redraw_page']) ? $_REQUEST['content_redraw_page'] : (get_query_var('page') ? get_query_var('page') : $page); } //+++ $_REQUEST['content_redraw_page'] = $args['paged']; $args['posts_per_page'] = $per_page; if (!empty($taxonomies)) { $args['tax_query'] = $taxonomies; } //+++ $args['orderby'] = 'title'; unset($args['meta_key']); $args['fields'] = 'ids'; //+++ $mdf_loop = new WP_Query($args); //for wrong page numbers if (!$mdf_loop->found_posts) { $args['paged'] = 1; $args['posts_per_page'] = $per_page; $mdf_loop = new WP_Query($args); } //+++ $atts['posts_ids'] = $mdf_loop->posts; //+++ return self::render_html(self::get_application_path() . 'views/gmap/mdf_gmap_const.php', $atts); }