Virtual page loading in header, body, and footer on default block theme
-
I have a plugin that is creating a virtual page for a specific URL.
I recently installed the plugin on the latest version of WordPress. The site is using the default twenty twenty-two block theme.
For some reason, the virtual page loads in the header, body, and footer. I’m not sure why it’s loading in the header and footer.
Does anyone have any insight?
<?php class VirtualPage { private $slug = NULL; private $title = NULL; private $content = NULL; private $author = NULL; private $date = NULL; private $type = NULL; public function __construct($args) { if (!isset($args['slug'])) { throw new Exception('No slug given for virtual page'); } $this->slug = $args['slug']; $this->title = isset($args['title']) ? $args['title'] : ''; $this->content = isset($args['content']) ? $args['content'] : ''; $this->meta_desc = isset($args['meta_desc']) ? $args['meta_desc'] : ''; $this->author = isset($args['author']) ? $args['author'] : 1; $this->date = isset($args['date']) ? $args['date'] : current_time('mysql'); $this->dategmt = isset($args['date']) ? $args['date'] : current_time('mysql', 1); $this->type = isset($args['type']) ? $args['type'] : 'page'; add_filter('the_posts', array(&$this, 'virtualPage')); } public function virtualPage($posts) { global $wp, $wp_query; $post = new stdClass; $post->ID = -1; $post->post_author = $this->author; $post->post_date = $this->date; $post->post_date_gmt = $this->dategmt; $post->post_content = $this->content; $post->post_title = $this->title; $post->post_excerpt = $this->meta_desc; $post->post_status = 'publish'; $post->comment_status = 'closed'; $post->ping_status = 'closed'; $post->post_password = ''; $post->post_name = $this->slug; $post->to_ping = ''; $post->pinged = ''; $post->modified = $post->post_date; $post->modified_gmt = $post->post_date_gmt; $post->post_content_filtered = ''; $post->post_parent = 0; $post->guid = get_home_url('/' . $this->slug); $post->menu_order = 0; $post->post_type = $this->type; $post->post_mime_type = ''; $post->comment_count = 0; $posts = array($post); $wp_query->is_page = TRUE; $wp_query->is_singular = TRUE; $wp_query->is_home = FALSE; $wp_query->is_archive = FALSE; $wp_query->is_category = FALSE; unset($wp_query->query['error']); $wp_query->query_vars['error'] = ''; $wp_query->is_404 = FALSE; return ($posts); } }
Viewing 2 replies - 1 through 2 (of 2 total)
Viewing 2 replies - 1 through 2 (of 2 total)
- The topic ‘Virtual page loading in header, body, and footer on default block theme’ is closed to new replies.