wp_attach_theme_preview_middleware()WP 6.3.0

Adds a middleware to apiFetch to set the theme for the preview. This adds a wp_theme_preview URL parameter to API requests from the Site Editor, so they also respond as if the theme is set to the value of the parameter.

No Hooks.

Return

null. Nothing (null).

Usage

wp_attach_theme_preview_middleware();

Changelog

Since 6.3.0 Introduced.

wp_attach_theme_preview_middleware() code WP 6.7.1

function wp_attach_theme_preview_middleware() {
	// Don't allow non-admins to preview themes.
	if ( ! current_user_can( 'switch_themes' ) ) {
		return;
	}

	wp_add_inline_script(
		'wp-api-fetch',
		sprintf(
			'wp.apiFetch.use( wp.apiFetch.createThemePreviewMiddleware( %s ) );',
			wp_json_encode( sanitize_text_field( wp_unslash( $_GET['wp_theme_preview'] ) ) )
		),
		'after'
	);
}