/** * Filter all the shop orders to remove child orders * * @param WP_Query $query */ function dokan_admin_shop_order_remove_parents($query) { if ($query->is_main_query() && $query->query['post_type'] == 'shop_order') { $query->set('orderby', 'ID'); $query->set('order', 'DESC'); } }
/** * Integrate EP into proper queries * * @param WP_Query $query * @since 2.1 */ function ep_admin_integrate($query) { // Lets make sure this doesn't interfere with the CLI if (defined('WP_CLI') && WP_CLI) { return; } if (!$query->is_main_query()) { return; } /** * We limit to these post types to not conflict with other modules like WooCommerce * * @since 2.1 * @var array */ $post_types = array('post' => 'post', 'page' => 'page'); $supported_post_types = apply_filters('ep_admin_supported_post_types', $post_types); $post_type = $query->get('post_type'); if (empty($post_type)) { $post_type = 'post'; } if (is_array($post_type)) { foreach ($post_type as $pt) { if (empty($supported_post_types[$pt])) { return; } } $query->set('ep_integrate', true); } else { if (!empty($supported_post_types[$post_type])) { $query->set('ep_integrate', true); } } }
/** * Set any query flags * * @param WP_Query $query * * @return void **/ public static function parse_query($query) { // set paged if ($query->is_main_query() && isset($_GET['tribe_paged'])) { $query->set('paged', $_REQUEST['tribe_paged']); } // Add tribe events post type to tag queries if ($query->is_tag && (array) $query->get('post_type') != array(TribeEvents::POSTTYPE)) { $types = $query->get('post_type'); if (empty($types)) { $types = array('post'); } if (is_array($types)) { $types[] = TribeEvents::POSTTYPE; } else { if (is_string($types)) { $types = array($types, TribeEvents::POSTTYPE); } else { if ($types != 'any') { $types = array('post', TribeEvents::POSTTYPE); } } } $query->set('post_type', $types); } $types = !empty($query->query_vars['post_type']) ? (array) $query->query_vars['post_type'] : array(); // check if any possiblity of this being an event query $query->tribe_is_event = in_array(TribeEvents::POSTTYPE, $types) && count($types) < 2 ? true : false; $query->tribe_is_multi_posttype = in_array(TribeEvents::POSTTYPE, $types) && count($types) >= 2 || in_array('any', $types) ? true : false; if ('default' === $query->get('eventDisplay')) { $query->set('eventDisplay', TribeEvents::instance()->default_view()); } // check if any possiblity of this being an event category $query->tribe_is_event_category = !empty($query->query_vars[TribeEvents::TAXONOMY]) ? true : false; $query->tribe_is_event_venue = in_array(TribeEvents::VENUE_POST_TYPE, $types) ? true : false; $query->tribe_is_event_organizer = in_array(TribeEvents::ORGANIZER_POST_TYPE, $types) ? true : false; $query->tribe_is_event_query = $query->tribe_is_event || $query->tribe_is_event_category || $query->tribe_is_event_venue || $query->tribe_is_event_organizer ? true : false; // move along, this is not the query you are looking for // is the query pulling posts from the past if ($query->is_main_query() && !empty($_REQUEST['tribe_event_display']) && $_REQUEST['tribe_event_display'] == 'past') { $query->tribe_is_past = true; } elseif (tribe_is_ajax_view_request() && $query->get('eventDisplay') == 'past') { $query->tribe_is_past = true; } else { $query->tribe_is_past = isset($query->tribe_is_past) ? $query->tribe_is_past : false; } // never allow 404 on month view if ($query->is_main_query() && $query->get('eventDisplay') == 'month' && !$query->is_tax && !$query->tribe_is_event_category) { $query->is_post_type_archive = true; $query->queried_object = get_post_type_object(TribeEvents::POSTTYPE); $query->queried_object_id = 0; } // check if is_event_query === true and hook filter if ($query->tribe_is_event_query) { // fixing is_home param $query->is_home = !empty($query->query_vars['is_home']) ? $query->query_vars['is_home'] : false; do_action('tribe_events_parse_query', $query); } }
/** * reversing the order of posts * * @wp-hook pre_get_posts * @param WP_Query $query * @return WP_Query $query */ function cora_filter_pre_get_posts_reverse_order(WP_Query $query) { if ($query->is_main_query()) { $query->set('order', 'ASC'); $query->set('orderby', 'ID'); } return $query; }
/** * pre_get_posts callback * * @since 1.0.0 * @param \WP_Query $q * @return void */ public function cq_pre_get_posts(\WP_Query $q) { // If posts_per_page is -1, then there's no limit set, // but we do need a limit to be able to keep the order of UNION sub-queries: // @see http://stackoverflow.com/a/7587423/2078474 if ($q->get('posts_per_page') && '-1' == $q->get('posts_per_page')) { $q->set('posts_per_page', 999999); } // Remove SQL_CALC_FOUND_ROWS from the SQL query: $q->set('no_found_rows', 1); }
/** * Filter query by active language in admin. * * @param WP_Query $query * * @return mixed */ public function filter_query_by_active_language($query) { global $pagenow; if ('nav-menus.php' === $pagenow and $query->query['post_type'] != 'nav_menu_item') { $active_lang = FW_Request::GET('fw_translate_to', $this->get_parent()->get_admin_active_language()); $query->set('meta_key', 'translation_lang'); $query->set('meta_value', $active_lang); $query->set('meta_compare', '='); } return $query; }
/** * Pre get posts for customizing the post type * * @param WP_Query $query * @return void */ function snihub_pre_get_posts($query) { if ($query->is_home() && $query->is_main_query()) { $query->set('post_type', 'snippet'); $query->set('meta_query', array(array('key' => 'no_index', 'compare' => 'NOT EXISTS'))); if (get_query_var('hot_snippets', false)) { $query->set('order', 'DESC'); $query->set('orderby', 'meta_value_num'); $query->set('meta_key', 'likes'); } if (get_query_var('snippets_by', false)) { $query->set('author', get_query_var('snippets_by', '0')); } } }
/** * Set geodir page variable in WP_Query instance. * * @since 1.0.0 * @package GeoDirectory * * @param WP_Query $query The WP_Query instance. * @return WP_Query */ function geodir_modified_query($query) { if ($query->is_main_query() && (geodir_is_page('add-listing') && isset($_REQUEST['pid']) && $_REQUEST['pid'] != '' || geodir_is_page('listing') || geodir_is_page('author') || geodir_is_page('search') || geodir_is_page('detail'))) { $query->set('is_geodir_loop', true); } return $query; }
/** * Media List: * Do the same as ^^ but for the list view. * * @param WP_Query $query * * @return array */ public function media_list_table_query($query) { if (is_admin() && $query->is_main_query() && 'upload' === get_current_screen()->id) { $meta_query = $this->add_status_check_to_meta_query($query->get('meta_query')); $query->set('meta_query', $meta_query); } }
/** * Limits posts that users see to their own * * @param WP_Query $query The query object * @return WP_Query */ public function limitPostsToUser($query) { if ($query->is_admin) { global $user_ID; $query->set('author', $user_ID); } return $query; }
/** * Remove the featured category on the home page main query * @param WP_Query $query * @since 1.2 */ function pmc_eve_query_category($query) { if ($query->is_home() && $query->is_main_query()) { $cat = get_category_by_slug('featured'); if ($cat) { $query->set('cat', '-' . $cat->term_id); } } }
/** * For some reason, wp_query does not have the post_type set by default on a frontend tax query for custom post types. * * @since 1.3.0 * @access private * * @param WP_Query $wp_query */ function jc_event_category_frontend_fix($wp_query) { if ($wp_query->is_main_query()) { if ($wp_query->is_tax) { $post_type = get_query_var('post_type'); if (!$post_type) { $post_type = array('post', 'event'); $wp_query->set('post_type', $post_type); } } } }
/** * フックで表示するレコードに変更があれば変更 * * @param WP_Query $wp_query */ public function pre_get_posts($wp_query) { if ($wp_query->is_main_query()) { $post_type = $wp_query->get('post_type'); $args = apply_filters('mwform_get_inquiry_data_args-' . $post_type, array()); if (!empty($args) && is_array($args)) { foreach ($args as $key => $value) { $wp_query->set($key, $value); } } } }
/** * Action pre_get_posts * * Sort speaking gigs by the appropriate columns. * * @since 3.1.0 * * @param \WP_Query $query The query object. * * @return void */ public function action_pre_get_posts($query) { /** * We only want our code to run in the main WP query * AND if an orderby query variable is designated. */ if ($query->is_main_query() && ($orderby = $query->get('orderby'))) { switch ($orderby) { case 'location': $query->set('meta_key', '_conference_location'); break; case 'conference': $query->set('meta_key', '_conference_name'); break; case 'conference_date': $query->set('meta_key', '_presentation_date'); break; } $query->set('orderby', 'meta_value'); } }
/** * filter on a particular group * * @param WP_Query $query * @param int $id * @return WP_Query */ function queasy_question_filter_query_by_group(WP_Query $query, $id) { $meta = array(); if (!empty($id)) { $meta[] = array(array('key' => 'queasy_question_group', 'value' => $id, 'compare' => '=')); } if (count($meta)) { $meta['relation'] = 'AND'; $query->set('meta_query', $meta); } return $query; }
/** * In case the store is set as front page, fool WordPress into thinking * this is a wpsc-product post type archive before the database is queried * for posts. * * Action hook: 'pre_get_post' * * @since 0.1 * @access private * * @param WP_Query $q query object */ public function _action_prepare_front_page($q) { if (!$q->is_main_query()) { return; } if ($this->is_store_front_page()) { $q->set('post_type', 'wpsc-product'); $q->wpsc_is_store_front_page = true; $q->is_post_type_archive = true; $q->is_archive = true; } }
/** * @since 1.15 * @param WP_Query $query */ public function filter_pre_get_posts_by_gravityview_form_id(&$query) { global $pagenow; if (!is_admin()) { return; } if ('edit.php' !== $pagenow || !rgget('gravityview_form_id') || !isset($query->query_vars['post_type'])) { return; } if ($query->query_vars['post_type'] == 'gravityview') { $query->set('meta_query', array(array('key' => '_gravityview_form_id', 'value' => rgget('gravityview_form_id')))); } }
public function sort_list(WP_Query $query) { if (!mpp_admin_is_gallery_list()) { return; } //check if the post type if (!$query->is_main_query() || $query->get('post_type') != mpp_get_gallery_post_type()) { return; } //if we are here, we may need to sort $orderby = isset($_REQUEST['orderby']) ? $_REQUEST['orderby'] : ''; $sort_order = isset($_REQUEST['order']) ? $_REQUEST['order'] : ''; if (!$orderby || !$sort_order) { return; } if ($orderby == 'user_id') { $query->set('orderby', 'author'); } elseif ($orderby == 'media_count') { $query->set('meta_key', '_mpp_media_count'); $query->set('orderby', 'meta_value_num'); } $query->set('order', $sort_order); }
/** * Fires after the query variable object is created, but before the actual query is run. * * @since 2.0.0 * * @param WP_Query $query The WP_Query instance (passed by reference). */ function pre_get_posts($query) { $liking = false; $liking_user = $query->get('liking_user'); if (is_int($liking_user) && $liking_user >= 0) { $liking_type = $query->get('liking_type'); if (empty($liking_type)) { $query->set('liking_type', 'like'); } $liking = true; } $orderby = $query->get('orderby'); if (strpos($orderby, 'like_count') !== false) { $meta_query = array_filter((array) $query->get('meta_query')); $query->set('meta_query', array_merge($meta_query, array('relation' => 'OR', array('key' => 'dp_like_count', 'compare' => 'NOT EXISTS'), array('key' => 'dp_like_count', 'compare' => 'EXISTS')))); $query->set('orderby', str_replace('like_count', 'meta_value_num', $orderby)); $query->set('meta_key', ''); //add_filter( 'posts_join', array( $this, 'posts_join' ), 10, 2 ); //add_filter( 'posts_groupby', array( $this, 'posts_groupby' ), 10, 2 ); //add_filter( 'posts_orderby', array( $this, 'posts_orderby' ), 10, 2 ); } else { //remove_filter( 'posts_orderby', array( $this, 'posts_orderby' ) ); } // if ( $query ) { // add_filter( 'posts_join', array( $this, 'posts_join' ), 10, 2 ); // add_filter( 'posts_where', array( $this, 'posts_where' ), 10, 2 ); // add_filter( 'posts_orderby', array( $this, 'posts_orderby' ), 10, 2 ); // // } else { // remove_filter( 'posts_join', array( $this, 'posts_join' ) ); // remove_filter( 'posts_where', array( $this, 'posts_where' ) ); // remove_filter( 'posts_orderby', array( $this, 'posts_orderby' ), 10, 2 ); // // // } }
/** * In case the store is set as front page, fool WordPress into thinking * this is a wpsc-product post type archive before the database is queried * for posts. * * Action hook: 'pre_get_post' * * @since 0.1 * @access private * * @param WP_Query $q query object */ public function _action_prepare_front_page($q) { if (!$q->is_main_query()) { return; } if ($q->is_singular() && 'wpsc-product' == $q->get('post_type')) { add_filter('posts_where', array($this, '_prepare_single_product'), 10, 2); } if ($this->is_store_front_page()) { $q->set('post_type', 'wpsc-product'); $q->wpsc_is_store_front_page = true; $q->is_post_type_archive = true; $q->is_archive = true; } }
/** * Display all existing portfolio posts on the page (without pagination) * Because in this theme we use the https://mixitup.kunkalabs.com/ plugin to display portfolio posts * If your theme displays portfolio posts in a different way, feel free to change or remove this function * @internal * @param WP_Query $query */ function _fw_ext_portfolio_theme_action_set_posts_per_page($query) { if (!$query->is_main_query()) { return; } /** * @var FW_Extension_Portfolio $portfolio */ $portfolio = fw()->extensions->get('portfolio'); $is_portfolio_taxonomy = $query->is_tax($portfolio->get_taxonomy_name()); $is_portfolio_archive = $query->is_archive() && isset($query->query['post_type']) && $query->query['post_type'] == $portfolio->get_post_type_name(); if ($is_portfolio_taxonomy || $is_portfolio_archive) { $query->set('posts_per_page', -1); } }
function tst_main_query_mods(WP_Query $query) { // exclude account_deleted's tasks: if (!is_admin() && $query->is_main_query()) { if (is_tag() && !$query->get('post_type')) { $query->set('post_type', 'tasks'); } $query->set('author', '-' . ACCOUNT_DELETED_ID); } if ($query->is_main_query() && $query->is_archive() || $query->get('post_type') == 'tasks') { if (!empty($_GET['st'])) { $query->set('post_status', $_GET['st'] == '-' ? array('publish', 'in_work', 'closed') : $_GET['st']); } if (!empty($_GET['dl'])) { $metas = (array) $query->get('meta_query'); switch ($_GET['dl']) { case '10': $metas[] = array('key' => 'deadline', 'value' => array(date('Ymd'), date('Ymd', strtotime('+10 days'))), 'compare' => 'BETWEEN', 'type' => 'DATE'); break; case 'lm': $metas[] = array('key' => 'deadline', 'value' => array(date('Ymd'), date('Ymd', strtotime('+1 month'))), 'compare' => 'BETWEEN', 'type' => 'DATE'); break; case 'mm': $metas[] = array('key' => 'deadline', 'value' => array(date('Ymd', strtotime('+1 month')), date('Ymd', strtotime('+6 months'))), 'compare' => 'BETWEEN', 'type' => 'DATE'); break; } $query->set('meta_query', $metas); } if (!empty($_GET['rw'])) { $metas = (array) $query->get('meta_query'); $metas[] = array('key' => 'reward', 'value' => $_GET['rw'], 'compare' => '='); $query->set('meta_query', $metas); } if (!empty($_GET['tt'])) { $query->set('tag_slug__in', (array) $_GET['tt']); } } }
/** * Filter WP Admin users list table to include users of the specified type. * * @param WP_Query $query * * @since 2.7.0 */ public function users_table_filter_by_type($query) { global $pagenow; if (is_admin() && 'users.php' === $pagenow && !empty($_REQUEST['bp-member-type'])) { $type_slug = sanitize_text_field($_REQUEST['bp-member-type']); // Check that the type is registered. if (null == bp_get_member_type_object($type_slug)) { return; } // Get the list of users that are assigned to this member type. $type = bp_get_term_by('slug', $type_slug, bp_get_member_type_tax_name()); if (empty($type->term_id)) { return; } $user_ids = bp_get_objects_in_term($type->term_id, bp_get_member_type_tax_name()); if ($user_ids && !is_wp_error($user_ids)) { $query->set('include', (array) $user_ids); } } }
/** * _set_paging * * @access public * @param WP_Query $WP_Query * @return void */ public function _set_paging($WP_Query) { if ($WP_Query->is_main_query() && apply_filters('FHEE__EE_CPT_Strategy___set_paging', TRUE)) { $page = get_query_var('page') ? get_query_var('page') : NULL; $paged = get_query_var('paged') ? get_query_var('paged') : $page; $WP_Query->set('paged', $paged); } }
<?php wp_reset_query(); ?> </div> <div class="pane popular-ads-grid-holder"> <div class="popular-ads-grid"> <?php global $paged, $wp_query, $wp; $args = wp_parse_args($wp->matched_query); if (!empty($args['paged']) && 0 == $paged) { $wp_query->set('paged', $args['paged']); $paged = $args['paged']; } $cat_id = get_cat_ID(single_cat_title('', false)); $ads_counter = $redux_demo['home-ads-counter']; $current = -1; $current2 = 0; $popularpost = new WP_Query(array('posts_per_page' => $ads_counter, 'cat' => $cat_id, 'posts_type' => 'post', 'paged' => $paged, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC')); while ($popularpost->have_posts()) { $popularpost->the_post(); $current++; $current2++; ?> <div class="ad-box span3 popular-posts-grid <?php if ($current % 4 == 0) {
/** * Reset the week parameter of the WordPress main query if needed. * * When cropping an avatar, a $_POST['w'] var is sent, setting the 'week' * parameter of the WordPress main query to this posted var. To avoid * notices, we need to make sure this 'week' query var is reset to 0. * * @since 2.2.0 * * @param WP_Query|null $posts_query the main query object. * * @uses bp_is_group_create() * @uses bp_is_group_admin_page() * @uses bp_is_group_admin_screen() to check for a group admin screen * @uses bp_action_variable() to check for the group's avatar creation step * @uses bp_is_user_change_avatar() to check for the user's change profile screen */ function bp_core_avatar_reset_query($posts_query = null) { $reset_w = false; // Group's avatar edit screen if (bp_is_group_admin_page()) { $reset_w = bp_is_group_admin_screen('group-avatar'); // Group's avatar create screen } elseif (bp_is_group_create()) { /** * we can't use bp_get_groups_current_create_step() * as it's not set yet */ $reset_w = 'group-avatar' === bp_action_variable(1); // User's change avatar screen } else { $reset_w = bp_is_user_change_avatar(); } // A user or a group is cropping an avatar if (true === $reset_w && isset($_POST['avatar-crop-submit'])) { $posts_query->set('w', 0); } }
/** * A recurring event will have the base post's slug in the * 'name' query var. We need to remove that and replace it * with the correct post's ID * * @param WP_Query $query * * @return void */ private function set_post_id_for_recurring_event_query($query) { $date = $query->get('eventDate'); $slug = $query->get('name'); if (empty($date) || empty($slug)) { return; // we shouldn't be here } $cache = new Tribe__Events__Cache(); $post_id = $cache->get('single_event_' . $slug . '_' . $date, 'save_post'); if (!empty($post_id)) { unset($query->query_vars['name']); unset($query->query_vars['tribe_events']); $query->set('p', $post_id); return; } global $wpdb; $parent_sql = "SELECT ID FROM {$wpdb->posts} WHERE post_name=%s AND post_type=%s"; $parent_sql = $wpdb->prepare($parent_sql, $slug, Tribe__Events__Main::POSTTYPE); $parent_id = $wpdb->get_var($parent_sql); $parent_start = get_post_meta($parent_id, '_EventStartDate', true); if (empty($parent_start)) { return; // how does this series not have a start date? } else { $parent_start_date = date('Y-m-d', strtotime($parent_start)); } if ($parent_start_date == $date) { $post_id = $parent_id; } else { /* Look for child posts taking place on the requested date (but not * necessarily at the same time as the parent event). This does not * cater to scenarios where multiple children take place on the same * date but at different times - which is a known limitation to be * addressed in a future release. */ $child_sql = "\n\t\t\t\t\t\tSELECT ID\n\t\t\t\t\t\tFROM {$wpdb->posts} p\n\t\t\t\t\t\tINNER JOIN {$wpdb->postmeta} m ON m.post_id=p.ID AND m.meta_key='_EventStartDate'\n\t\t\t\t\t\tWHERE p.post_parent=%d\n\t\t\t\t\t\t AND p.post_type=%s\n\t\t\t\t\t\t AND LEFT( m.meta_value, 10 ) = %s\n\t\t\t\t\t"; $child_sql = $wpdb->prepare($child_sql, $parent_id, Tribe__Events__Main::POSTTYPE, $date); $post_id = $wpdb->get_var($child_sql); } if ($post_id) { unset($query->query_vars['name']); unset($query->query_vars['tribe_events']); $query->set('p', $post_id); $cache->set('single_event_' . $slug . '_' . $date, $post_id, Tribe__Events__Cache::NO_EXPIRATION, 'save_post'); } }
/** * Anywhere that a feed is displaying posts, show comics too. * * @param WP_Query $query */ public function include_in_feeds( $query ) { if ( ! $query->is_feed() ) return; // Don't modify the query if the post type isn't public. if ( ! get_post_type_object( 'jetpack-comic' )->public ) return; $query_post_types = $query->get( 'post_type' ); if ( empty( $query_post_types ) ) $query_post_types = 'post'; if ( ! is_array( $query_post_types ) ) $query_post_types = array( $query_post_types ); if ( in_array( 'post', $query_post_types ) ) { $query_post_types[] = self::POST_TYPE; $query->set( 'post_type', $query_post_types ); } }
/** * Exclude featured posts from the blog query when the blog is the front-page, * and user has not checked the "Display tag content in all listings" checkbox. * * Filter the home page posts, and remove any featured post ID's from it. * Hooked onto the 'pre_get_posts' action, this changes the parameters of the * query before it gets any posts. * * @uses Featured_Content::get_featured_post_ids(); * @uses Featured_Content::get_setting(); * @param WP_Query $query * @return WP_Query Possibly modified WP_Query */ public static function pre_get_posts($query) { // Bail if not home or not main query. if (!$query->is_home() || !$query->is_main_query()) { return; } // Bail if the blog page is not the front page. if ('posts' !== get_option('show_on_front')) { return; } $featured = self::get_featured_post_ids(); // Bail if no featured posts. if (!$featured) { return; } $settings = self::get_setting(); // Bail if the user wants featured posts always displayed. if (true == $settings['show-all']) { return; } // We need to respect post ids already in the blacklist. $post__not_in = $query->get('post__not_in'); if (!empty($post__not_in)) { $featured = array_merge((array) $post__not_in, $featured); $featured = array_unique($featured); } $query->set('post__not_in', $featured); }
/** * Add the attachment query var to the $query object. * This is used as a fallback for when pretty permalinks * are not enabled. * * @param WP_Query $query The WordPress main query * * @since 3.2.0 * @return void */ public function attachment_query_var($query) { if ($query->is_main_query() && isset($_GET['wpas-attachment'])) { $query->set('wpas-attachment', filter_input(INPUT_GET, 'wpas-attachment', FILTER_SANITIZE_NUMBER_INT)); } }