bbp_theme_compat_reset_post( array $args = array() )
This fun little function fills up some WordPress globals with dummy data to stop your average page template from complaining about it missing.
Description
Parameters
- $args
-
(Optional)
Default value: array()
Source
File: bp-forums/core/theme-compat.php
function bbp_theme_compat_reset_post( $args = array() ) {
global $wp_query, $post;
// Switch defaults if post is set
if ( isset( $wp_query->post ) ) {
$dummy = bbp_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,
), 'theme_compat_reset_post' );
} else {
$dummy = bbp_parse_args( $args, array(
'ID' => -9999,
'post_status' => bbp_get_public_status_id(),
'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,
), 'theme_compat_reset_post' );
}
// Bail if dummy post is empty
if ( empty( $dummy ) ) {
return;
}
// Set the $post global
$post = new WP_Post( (object) $dummy );
// 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 );
/**
* Force the header back to 200 status if not a deliberate 404
*
* @see http://bbpress.trac.wordpress.org/ticket/1973
*/
if ( ! $wp_query->is_404() ) {
status_header( 200 );
}
// If we are resetting a post, we are in theme compat
bbp_set_theme_compat_active( true );
}
Changelog
| Version | Description |
|---|---|
| bbPress (r3108) | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.