_resolve_template_for_new_post() – Sets the current WP_Query to return auto-draft posts.

You appear to be a bot. Output may be restricted

Description

Sets the current WP_Query to return auto-draft posts.

The auto-draft status indicates a new post, so allow the the WP_Query instance to return an auto-draft post for template resolution when editing a new post.

Usage

_resolve_template_for_new_post( $wp_query );

Parameters

$wp_query
( WP_Query ) required – Current WP_Query instance, passed by reference.

Returns

void

Source

File name: wordpress/wp-includes/block-template.php


Lines:

1 to 25 of 25
function _resolve_template_for_new_post( $wp_query ) {
  if ( ! $wp_query->is_main_query() ) {
    return;
  }

  remove_filter( 'pre_get_posts', '_resolve_template_for_new_post' );

  // Pages.
  $page_id = isset( $wp_query->query['page_id'] ) ? $wp_query->query['page_id'] : null;

  // Posts, including custom post types.
  $p = isset( $wp_query->query['p'] ) ? $wp_query->query['p'] : null;

  $post_id = $page_id ? $page_id : $p;
  $post    = get_post( $post_id );

  if (
    $post &&
    'auto-draft' === $post->post_status &&
    current_user_can( 'edit_post', $post->ID )
  ) {
    $wp_query->set( 'post_status', 'auto-draft' );
  }
}
 

 View on GitHub View on Trac