public function process() { global $wp, $wp_query, $current_blog, $current_site; $qo = get_queried_object(); if (is_multisite()) { $this->data['multisite']['current_blog'] = array('title' => sprintf('Current blog: #%d', $current_blog->blog_id), 'data' => $current_blog); } if (QM_Util::is_multi_network()) { $this->data['multisite']['current_site'] = array('title' => sprintf('Current site: #%d', $current_site->id), 'data' => $current_site); } if (is_admin()) { $this->data['request']['request'] = $_SERVER['REQUEST_URI']; foreach (array('query_string') as $item) { $this->data['request'][$item] = $wp->{$item}; } } else { foreach (array('request', 'matched_rule', 'matched_query', 'query_string') as $item) { $this->data['request'][$item] = $wp->{$item}; } } $plugin_qvars = array_flip(apply_filters('query_vars', array())); $qvars = $wp_query->query_vars; $query_vars = array(); foreach ($qvars as $k => $v) { if (isset($plugin_qvars[$k])) { if ('' !== $v) { $query_vars[$k] = $v; } } else { if (!empty($v)) { $query_vars[$k] = $v; } } } ksort($query_vars); # First add plugin vars to $this->data['qvars']: foreach ($query_vars as $k => $v) { if (isset($plugin_qvars[$k])) { $this->data['qvars'][$k] = $v; $this->data['plugin_qvars'][$k] = $v; } } # Now add all other vars to $this->data['qvars']: foreach ($query_vars as $k => $v) { if (!isset($plugin_qvars[$k])) { $this->data['qvars'][$k] = $v; } } switch (true) { case is_null($qo): // Nada break; case is_a($qo, 'WP_Post'): // Single post $this->data['queried_object']['title'] = sprintf(__('Single %s: #%d', 'query-monitor'), get_post_type_object($qo->post_type)->labels->singular_name, $qo->ID); break; case is_a($qo, 'WP_User'): // Author archive $this->data['queried_object']['title'] = sprintf(__('Author archive: %s', 'query-monitor'), $qo->user_nicename); break; case is_a($qo, 'WP_Term'): case property_exists($qo, 'term_id'): // Term archive $this->data['queried_object']['title'] = sprintf(__('Term archive: %s', 'query-monitor'), $qo->slug); break; case property_exists($qo, 'has_archive'): // Post type archive $this->data['queried_object']['title'] = sprintf(__('Post type archive: %s', 'query-monitor'), $qo->name); break; default: // Unknown, but we have a queried object $this->data['queried_object']['title'] = __('Unknown queried object', 'query-monitor'); break; } if (!is_null($qo)) { $this->data['queried_object']['data'] = $qo; } }