{"id":5548,"date":"2026-02-12T20:44:45","date_gmt":"2026-02-13T01:44:45","guid":{"rendered":"https:\/\/chubes.net\/?documentation=wp-class-wordpress-environment-setup"},"modified":"2026-03-13T03:28:03","modified_gmt":"2026-03-13T07:28:03","slug":"wp-class-wordpress-environment-setup","status":"publish","type":"documentation","link":"https:\/\/chubes.net\/docs\/wordpress-core\/bootstrap\/wp-class-wordpress-environment-setup\/","title":{"rendered":"WP Class &#8211; WordPress Environment Setup"},"content":{"rendered":"<p>The <code>WP<\/code> class is responsible for setting up the WordPress environment, parsing requests, and initializing the main query loop.<\/p><p><strong>File:<\/strong> <code>wp-includes\/class-wp.php<\/code><\/p><p><strong>Since:<\/strong> 2.0.0<\/p><h2 class=\"wp-block-heading\">Overview<\/h2><p>The <code>WP<\/code> class handles:<\/p><ul class=\"wp-block-list\"><li>Parsing the request URL and matching rewrite rules<\/li><li>Setting up query variables<\/li><li>Initializing the main WordPress query<\/li><li>Sending HTTP headers<\/li><li>Handling 404 errors<\/li><li>Registering global variables<\/li><\/ul><h2 class=\"wp-block-heading\">Properties<\/h2><h3 class=\"wp-block-heading\">Query Variables<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/**\n * Public query variables.\n * @var string[]\n *\/\npublic $public_query_vars = array(\n    &#039;m&#039;, &#039;p&#039;, &#039;posts&#039;, &#039;w&#039;, &#039;cat&#039;, &#039;withcomments&#039;, &#039;withoutcomments&#039;,\n    &#039;s&#039;, &#039;search&#039;, &#039;exact&#039;, &#039;sentence&#039;, &#039;calendar&#039;, &#039;page&#039;, &#039;paged&#039;,\n    &#039;more&#039;, &#039;tb&#039;, &#039;pb&#039;, &#039;author&#039;, &#039;order&#039;, &#039;orderby&#039;, &#039;year&#039;, &#039;monthnum&#039;,\n    &#039;day&#039;, &#039;hour&#039;, &#039;minute&#039;, &#039;second&#039;, &#039;name&#039;, &#039;category_name&#039;, &#039;tag&#039;,\n    &#039;feed&#039;, &#039;author_name&#039;, &#039;pagename&#039;, &#039;page_id&#039;, &#039;error&#039;, &#039;attachment&#039;,\n    &#039;attachment_id&#039;, &#039;subpost&#039;, &#039;subpost_id&#039;, &#039;preview&#039;, &#039;robots&#039;,\n    &#039;favicon&#039;, &#039;taxonomy&#039;, &#039;term&#039;, &#039;cpage&#039;, &#039;post_type&#039;, &#039;embed&#039;\n);\n\n\/**\n * Private query variables (not accepted from URL).\n * @var string[]\n *\/\npublic $private_query_vars = array(\n    &#039;offset&#039;, &#039;posts_per_page&#039;, &#039;posts_per_archive_page&#039;, &#039;showposts&#039;,\n    &#039;nopaging&#039;, &#039;post_type&#039;, &#039;post_status&#039;, &#039;category__in&#039;, &#039;category__not_in&#039;,\n    &#039;category__and&#039;, &#039;tag__in&#039;, &#039;tag__not_in&#039;, &#039;tag__and&#039;, &#039;tag_slug__in&#039;,\n    &#039;tag_slug__and&#039;, &#039;tag_id&#039;, &#039;post_mime_type&#039;, &#039;perm&#039;, &#039;comments_per_page&#039;,\n    &#039;post__in&#039;, &#039;post__not_in&#039;, &#039;post_parent&#039;, &#039;post_parent__in&#039;,\n    &#039;post_parent__not_in&#039;, &#039;title&#039;, &#039;fields&#039;\n);\n\n\/**\n * Extra query variables from user.\n * @var array\n *\/\npublic $extra_query_vars = array();\n\n\/**\n * Final query variables for WP_Query.\n * @var array\n *\/\npublic $query_vars = array();<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">Request Information<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/**\n * The query string (built from query_vars).\n * @var string\n *\/\npublic $query_string = &#039;&#039;;\n\n\/**\n * The request path (e.g., &#039;2015\/05\/06&#039;).\n * @var string\n *\/\npublic $request = &#039;&#039;;\n\n\/**\n * Rewrite rule that matched.\n * @var string\n *\/\npublic $matched_rule = &#039;&#039;;\n\n\/**\n * Query string from matched rewrite rule.\n * @var string\n *\/\npublic $matched_query = &#039;&#039;;\n\n\/**\n * Whether permalink matching was attempted.\n * @var bool\n *\/\npublic $did_permalink = false;<\/code><\/pre><\/div><h2 class=\"wp-block-heading\">Methods<\/h2><h3 class=\"wp-block-heading\">main()<\/h3><p>Entry point that orchestrates the entire request handling.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function main( string|array $query_args = &#039;&#039; ): void<\/code><\/pre><\/div><p><strong>Flow:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\"><\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code\"><code>main()\n  \u251c\u2500\u2500 init()           \u2192 Set up current user\n  \u251c\u2500\u2500 parse_request()  \u2192 Parse URL, match rewrite rules\n  \u2502   \u2514\u2500\u2500 (if parsed successfully)\n  \u2502       \u251c\u2500\u2500 query_posts()    \u2192 Execute WP_Query\n  \u2502       \u251c\u2500\u2500 handle_404()     \u2192 Set 404 if needed\n  \u2502       \u2514\u2500\u2500 register_globals() \u2192 Export to GLOBALS\n  \u251c\u2500\u2500 send_headers()   \u2192 Send HTTP headers\n  \u2514\u2500\u2500 do_action(&#039;wp&#039;)  \u2192 Fire &#039;wp&#039; action<\/code><\/pre><\/div><p><strong>Since:<\/strong> 2.0.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">init()<\/h3><p>Sets up the current user.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function init(): void<\/code><\/pre><\/div><p><strong>Behavior:<\/strong> Calls <code>wp_get_current_user()<\/code> to initialize the current user.<\/p><p><strong>Since:<\/strong> 2.0.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">parse_request()<\/h3><p>Parses the request to determine query variables.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function parse_request( string|array $extra_query_vars = &#039;&#039; ): bool<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$extra_query_vars<\/code> &#8211; Additional query vars to merge<\/li><\/ul><p><strong>Returns:<\/strong> <code>true<\/code> if request was parsed, <code>false<\/code> if short-circuited<\/p><p><strong>Process:<\/strong><\/p><ol class=\"wp-block-list\"><li>Check <code>do_parse_request<\/code> filter (allows short-circuit)<\/li><li>Process <code>extra_query_vars<\/code><\/li><li>Fetch rewrite rules from <code>$wp_rewrite<\/code><\/li><li>Match request against rewrite rules<\/li><li>Extract query vars from matched rule<\/li><li>Filter through <code>query_vars<\/code> filter<\/li><li>Populate <code>$this-&gt;query_vars<\/code> from:<ul class=\"wp-block-list\"><li>Extra query vars<\/li><li><code>$_GET<\/code><\/li><li><code>$_POST<\/code><\/li><li>Permalink query vars<\/li><\/ul><\/li><li>Validate post types and taxonomies<\/li><li>Fire <code>parse_request<\/code> action<\/li><\/ol><p><strong>Hooks:<\/strong><\/p><ul class=\"wp-block-list\"><li>Extra query vars<\/li><li><code>$_GET<\/code><\/li><li><code>$_POST<\/code><\/li><li>Permalink query vars<\/li><\/ul><p><strong>Since:<\/strong> 2.0.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">query_posts()<\/h3><p>Executes the main WordPress query.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function query_posts(): void<\/code><\/pre><\/div><p><strong>Process:<\/strong><\/p><ol class=\"wp-block-list\"><li>Calls <code>build_query_string()<\/code> to create query string<\/li><li>Executes <code>$wp_the_query-&gt;query( $this-&gt;query_vars )<\/code><\/li><\/ol><p><strong>Since:<\/strong> 2.0.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">build_query_string()<\/h3><p>Builds query string from query variables.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function build_query_string(): void<\/code><\/pre><\/div><p><strong>Sets:<\/strong> <code>$this-&gt;query_string<\/code><\/p><p><strong>Filter:<\/strong> <code>query_string<\/code> (deprecated since 2.1.0)<\/p><p><strong>Since:<\/strong> 2.0.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">send_headers()<\/h3><p>Sends HTTP headers for the response.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function send_headers(): void<\/code><\/pre><\/div><p><strong>Headers Set:<\/strong><\/p><ul class=\"wp-block-list\"><li>Extra query vars<\/li><li><code>$_GET<\/code><\/li><li><code>$_POST<\/code><\/li><li>Permalink query vars<\/li><\/ul><p><strong>Supports:<\/strong><\/p><ul class=\"wp-block-list\"><li>Filter: <code>do_parse_request<\/code> &#8211; Short-circuit parsing<\/li><li>Filter: <code>query_vars<\/code> &#8211; Modify allowed query vars<\/li><li>Filter: <code>request<\/code> &#8211; Modify final query vars<\/li><li>Action: <code>parse_request<\/code> &#8211; After parsing complete<\/li><\/ul><p><strong>Filter:<\/strong> <code>wp_headers<\/code> &#8211; Modify headers before sending<\/p><p><strong>Action:<\/strong> <code>send_headers<\/code> &#8211; After headers sent<\/p><p><strong>Since:<\/strong> 2.0.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">handle_404()<\/h3><p>Sets 404 status when appropriate.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function handle_404(): void<\/code><\/pre><\/div><p><strong>Logic:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>Content-Type<\/code> &#8211; Based on request type<\/li><li><code>X-Pingback<\/code> &#8211; For pingback-enabled posts<\/li><li><code>Last-Modified<\/code> \/ <code>ETag<\/code> &#8211; For feeds<\/li><li>Cache headers &#8211; For logged-in users, password-protected posts<\/li><\/ul><p><strong>Filter:<\/strong> <code>pre_handle_404<\/code> &#8211; Short-circuit handling<\/p><p><strong>Since:<\/strong> 2.0.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">register_globals()<\/h3><p>Exports query variables to global scope.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function register_globals(): void<\/code><\/pre><\/div><p><strong>Globals Set:<\/strong><\/p><ul class=\"wp-block-list\"><li>304 Not Modified for feeds<\/li><li>Error status codes (403, 404, 500, 502, 503)<\/li><li>No-cache headers where appropriate<\/li><\/ul><p><strong>Since:<\/strong> 2.0.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">add_query_var()<\/h3><p>Adds a public query variable.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function add_query_var( string $qv ): void<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><strong>Never 404:<\/strong> Admin, robots.txt, favicon.ico<\/li><li><strong>Not 404:<\/strong> Posts found with valid pagination<\/li><li><strong>Not 404:<\/strong> Empty archives for valid objects (categories, authors, etc.)<\/li><li><strong>404:<\/strong> No posts found for invalid requests<\/li><\/ul><p><strong>Since:<\/strong> 2.1.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">remove_query_var()<\/h3><p>Removes a public query variable.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function remove_query_var( string $name ): void<\/code><\/pre><\/div><p><strong>Since:<\/strong> 4.5.0<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">set_query_var()<\/h3><p>Sets a query variable value.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">public function set_query_var( string $key, mixed $value ): void<\/code><\/pre><\/div><p><strong>Since:<\/strong> 2.3.0<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Usage Example<\/h2><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ WordPress core instantiation (in wp-includes\/class-wp.php)\nglobal $wp;\n\n\/\/ In wp-blog-header.php or similar\n$wp = new WP();\n\n\/\/ Process the request\n$wp-&gt;main();\n\n\/\/ After main(), you can access:\necho $wp-&gt;request;           \/\/ e.g., &#039;2024\/01\/hello-world&#039;\necho $wp-&gt;matched_rule;      \/\/ e.g., &#039;([0-9]{4})\/([0-9]{1,2})\/([^\/]+)(?:\/([0-9]+))?\/?$&#039;\nprint_r( $wp-&gt;query_vars );  \/\/ [&#039;year&#039; =&gt; &#039;2024&#039;, &#039;monthnum&#039; =&gt; &#039;01&#039;, &#039;name&#039; =&gt; &#039;hello-world&#039;]<\/code><\/pre><\/div><h2 class=\"wp-block-heading\">Request Parsing Flow<\/h2><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">URL: https:\/\/example.com\/2024\/01\/hello-world\/\n\n1. parse_request() called\n\n2. Strip home path from URL\n   Request: &#039;2024\/01\/hello-world&#039;\n\n3. Match against rewrite rules\n   Matched: &#039;([0-9]{4})\/([0-9]{1,2})\/([^\/]+)(?:\/([0-9]+))?\/?$&#039;\n   \n4. Extract matches\n   $matches = [&#039;2024\/01\/hello-world&#039;, &#039;2024&#039;, &#039;01&#039;, &#039;hello-world&#039;]\n\n5. Apply to rule&#039;s query\n   &#039;year=$matches[1]&amp;monthnum=$matches[2]&amp;name=$matches[3]&#039;\n   \u2192 &#039;year=2024&amp;monthnum=01&amp;name=hello-world&#039;\n\n6. Parse into query_vars\n   $this-&gt;query_vars = [\n       &#039;year&#039; =&gt; &#039;2024&#039;,\n       &#039;monthnum&#039; =&gt; &#039;01&#039;,\n       &#039;name&#039; =&gt; &#039;hello-world&#039;\n   ]<\/code><\/pre><\/div><h2 class=\"wp-block-heading\">Public vs Private Query Vars<\/h2><p><strong>Public Query Variables:<\/strong><\/p><ul class=\"wp-block-list\"><li>Each query var as <code>$GLOBALS[$key]<\/code><\/li><li><code>$query_string<\/code><\/li><li><code>$posts<\/code> (reference to WP_Query posts)<\/li><li><code>$post<\/code> (current post)<\/li><li><code>$request<\/code> (SQL query)<\/li><li><code>$more<\/code> (for single posts\/pages)<\/li><li><code>$single<\/code> (for single posts\/pages)<\/li><li><code>$authordata<\/code> (for author archives)<\/li><\/ul><p><strong>Private Query Variables:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$qv<\/code> &#8211; Query variable name<\/li><\/ul><h2 class=\"wp-block-heading\">Integration with WP_Query<\/h2><p>The <code>WP<\/code> class prepares query variables, then passes them to <code>WP_Query<\/code>:<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ In query_posts()\nglobal $wp_the_query;\n$wp_the_query-&gt;query( $this-&gt;query_vars );\n\n\/\/ WP_Query then:\n\/\/ 1. Parses the query vars\n\/\/ 2. Builds SQL query\n\/\/ 3. Executes query\n\/\/ 4. Sets up post data<\/code><\/pre><\/div><h2 class=\"wp-block-heading\">Hooks Reference<\/h2><figure class=\"wp-block-table\"><table><thead><tr><th>Hook<\/th><th>Type<\/th><th>Purpose<\/th><\/tr><\/thead><tbody><tr><td><code>do_parse_request<\/code><\/td><td>Filter<\/td><td>Short-circuit request parsing<\/td><\/tr><tr><td><code>query_vars<\/code><\/td><td>Filter<\/td><td>Modify allowed public query vars<\/td><\/tr><tr><td><code>request<\/code><\/td><td>Filter<\/td><td>Modify parsed query vars<\/td><\/tr><tr><td><code>parse_request<\/code><\/td><td>Action<\/td><td>After request is parsed<\/td><\/tr><tr><td><code>wp_headers<\/code><\/td><td>Filter<\/td><td>Modify HTTP headers<\/td><\/tr><tr><td><code>send_headers<\/code><\/td><td>Action<\/td><td>After headers sent<\/td><\/tr><tr><td><code>pre_handle_404<\/code><\/td><td>Filter<\/td><td>Short-circuit 404 handling<\/td><\/tr><tr><td><code>wp<\/code><\/td><td>Action<\/td><td>After environment fully set up<\/td><\/tr><\/tbody><\/table><\/figure>","protected":false},"excerpt":{"rendered":"<p>The WP class is responsible for setting up the WordPress environment, parsing requests, and initializing the main query loop. File: wp-includes\/class-wp.php Since: 2.0.0 Overview The WP class handles: Parsing the&#8230;<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"footnotes":""},"tags":[],"project":[605],"project_type":[749],"class_list":["post-5548","documentation","type-documentation","status-publish","hentry","project-bootstrap","project_type-wordpress-reference"],"project_info":{"id":589,"name":"WordPress Core","slug":"wordpress-core"},"project_type_info":{"id":749,"name":"WordPress Reference","slug":"wordpress-reference"},"_links":{"self":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation"}],"about":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/types\/documentation"}],"version-history":[{"count":3,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5548\/revisions"}],"predecessor-version":[{"id":8969,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5548\/revisions\/8969"}],"wp:attachment":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/media?parent=5548"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/tags?post=5548"},{"taxonomy":"project","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project?post=5548"},{"taxonomy":"project_type","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project_type?post=5548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}