ap_theme_compat_reset_post( array $args = array() )
Description #
This fun little function fills up some WordPress globals with dummy data to stop your average page template from complaining about it missing.
Parameters #
- $argsarray (Optional) Arguments. Default value: array()
Source #
File: includes/theme.php
function ap_theme_compat_reset_post( $args = array() ) { global $wp_query, $post; // Switch defaults if post is set. if ( isset( $wp_query->post ) ) { $dummy = wp_parse_args( $args, array( 'ID' => $wp_query->post->ID, 'post_status' => $wp_query->post->post_status, 'post_author' => $wp_query->post->post_author, 'post_parent' => $wp_query->post->post_parent, 'post_type' => $wp_query->post->post_type, 'post_date' => $wp_query->post->post_date, 'post_date_gmt' => $wp_query->post->post_date_gmt, 'post_modified' => $wp_query->post->post_modified, 'post_modified_gmt' => $wp_query->post->post_modified_gmt, 'post_content' => $wp_query->post->post_content, 'post_title' => $wp_query->post->post_title, 'post_excerpt' => $wp_query->post->post_excerpt, 'post_content_filtered' => $wp_query->post->post_content_filtered, 'post_mime_type' => $wp_query->post->post_mime_type, 'post_password' => $wp_query->post->post_password, 'post_name' => $wp_query->post->post_name, 'guid' => $wp_query->post->guid, 'menu_order' => $wp_query->post->menu_order, 'pinged' => $wp_query->post->pinged, 'to_ping' => $wp_query->post->to_ping, 'ping_status' => $wp_query->post->ping_status, 'comment_status' => $wp_query->post->comment_status, 'comment_count' => $wp_query->post->comment_count, 'filter' => $wp_query->post->filter, 'is_404' => false, 'is_page' => false, 'is_single' => false, 'is_archive' => false, 'is_tax' => false, ) ); } else { $dummy = wp_parse_args( $args, array( 'ID' => -9999, 'post_status' => 'publish', 'post_author' => 0, 'post_parent' => 0, 'post_type' => 'page', 'post_date' => 0, 'post_date_gmt' => 0, 'post_modified' => 0, 'post_modified_gmt' => 0, 'post_content' => '', 'post_title' => '', 'post_excerpt' => '', 'post_content_filtered' => '', 'post_mime_type' => '', 'post_password' => '', 'post_name' => '', 'guid' => '', 'menu_order' => 0, 'pinged' => '', 'to_ping' => '', 'ping_status' => '', 'comment_status' => 'closed', 'comment_count' => 0, 'filter' => 'raw', 'is_404' => false, 'is_page' => false, 'is_single' => false, 'is_archive' => false, 'is_tax' => false, ) ); } // Bail if dummy post is empty. if ( empty( $dummy ) ) { return; } // Set the $post global. $post = new WP_Post( (object) $dummy ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited // Copy the new post global into the main $wp_query. $wp_query->post = $post; $wp_query->posts = array( $post ); // Prevent comments form from appearing. $wp_query->post_count = 1; $wp_query->is_404 = $dummy['is_404']; $wp_query->is_page = $dummy['is_page']; $wp_query->is_single = $dummy['is_single']; $wp_query->is_archive = $dummy['is_archive']; $wp_query->is_tax = $dummy['is_tax']; // Clean up the dummy post. unset( $dummy ); if ( ! $wp_query->is_404() ) { status_header( 200 ); } // If we are resetting a post, we are in theme compat. anspress()->theme_compat->active = true; }
Expand full source code Collapse full source code View on GitHub: includes/theme.php:1054
Add your comment