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'));
     }
 }