public static function registerCustomFilter(WP_Query $query) { if (!is_admin() and isset($query->query_vars['post_type']) && $query->query_vars['post_type'] == CMA_Thread::POST_TYPE) { if ((!isset($query->query_vars['widget']) || $query->query_vars['widget'] !== true) && !$query->is_single && !$query->is_404 && !$query->is_author) { if ($widgetOptions = self::restoreWidgetOptions()) { if (!empty($widgetOptions['author'])) { $query->set('author', $widgetOptions['author']); } if (isset($widgetOptions['resolved']) and !is_null($widgetOptions['resolved'])) { $metaQuery = $query->get('meta_query'); $metaQuery[] = array('key' => CMA_Thread::$_meta['resolved'], 'value' => intval($widgetOptions['resolved'])); $query->set('meta_query', $metaQuery); } } else { if (CMA_Thread::showOnlyOwnQuestions()) { $userId = get_current_user_id(); if (empty($userId)) { $userId = 99999999; } $query->set('author', $userId); } } } add_filter('posts_where_request', array(__CLASS__, 'categoryAccessFilter')); } }