_resolve_template_for_new_post

函数
_resolve_template_for_new_post ( $wp_query )
Access
Private
参数
  • (WP_Query) $wp_query Current WP_Query instance, passed by reference.
    Required:
定义位置
相关方法
resolve_block_templaterest_get_route_for_post_resolve_home_block_templatewp_filter_wp_template_unique_post_slug_remove_theme_support
引入
5.9.0
弃用
-

_resolve_template_for_new_post: 这个函数负责确定用于显示刚创建的新文章的适当模板。它考虑到文章的类型和任何可能已经为该文章类型定义的自定义模板。

将当前的WP_Query设置为返回自动起草的文章。

自动起草状态表示一个新的文章,所以允许WP_Query实例在编辑新的文章时返回一个自动起草的文章以进行模板解析: 当编辑一个新的文章时,允许WP_Query实例返回一个自动起草的文章来解决模板问题。

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' );
	}
}

常见问题

FAQs
查看更多 >