/**
  * Tries to transform certain queries from "by name" querying to "by ID" to overcome WordPress Core functionality
  * for resolving names not being filtered by language
  *
  * @param WP_Query $q
  *
  * @return WP_Query
  */
 private function maybe_adjust_name_var($q)
 {
     if (((bool) ($name_in_q = $q->get('name')) === true || (bool) ($name_in_q = $q->get('pagename')) === true) && (bool) $q->get('page_id') === false || (bool) ($post_type = $q->get('post_type')) === true && is_scalar($post_type) && (bool) ($name_in_q = $q->get($post_type)) === true) {
         list($name_found, $type, $altered) = $this->query_filter->get_404_util()->guess_cpt_by_name($name_in_q, $q);
         if ($altered === true) {
             $name_before = $q->get('name');
             $q->set('name', $name_found);
         }
         $type = $type ? $type : 'page';
         $type = is_scalar($type) ? $type : (count($type) === 1 ? end($type) : false);
         $q = $type ? $this->query_filter->get_page_name_filter($type)->filter_page_name($q) : $q;
         if (isset($name_before)) {
             $q->set('name', $name_before);
         }
     }
     return $q;
 }