The preview_theme() WordPress PHP function starts the preview theme output buffer.
Usage
preview_theme();
Parameters
- None
More information
See WordPress Developer Resources: preview_theme
Examples
Previewing a Theme
This example demonstrates how to enable the preview of a theme when a user has the required permissions and the necessary query variables are present:
// Check if user has the required permissions if (current_user_can('switch_themes')) { // Check if 'template' and 'preview' query variables exist if (isset($_GET['template']) && isset($_GET['preview'])) { // Start preview theme output buffer preview_theme(); } }
Adding a Preview Theme Button
In this example, we’ll create a ‘Preview Theme’ button that will only show when a user has the required permissions to preview a theme:
// Check if user has the required permissions if (current_user_can('switch_themes')) { // Create a 'Preview Theme' button with the necessary query variables echo '<a href="' . esc_url(add_query_arg(array('template' => 'my_new_theme', 'preview' => 1), home_url())) . '" target="_blank">Preview Theme</a>'; }
Customizing the Preview Theme URL
This example shows how to customize the preview theme URL by adding a custom template and preview parameters:
// Set custom template and preview parameters $template = 'custom_theme'; $preview = 1; // Create the preview theme URL with the custom parameters $preview_theme_url = esc_url(add_query_arg(array('template' => $template, 'preview' => $preview), home_url())); // Output the preview theme URL echo $preview_theme_url;
Displaying a Message When Previewing a Theme
In this example, we’ll display a message to the user when they are previewing a theme:
// Check if 'template' and 'preview' query variables exist if (isset($_GET['template']) && isset($_GET['preview'])) { // Output a message to the user echo '<p>You are currently previewing the ' . esc_html($_GET['template']) . ' theme.</p>'; }
Redirecting to a Specific Page When Previewing a Theme
This example demonstrates how to redirect users to a specific page when they are previewing a theme:
// Check if 'template' and 'preview' query variables exist if (isset($_GET['template']) && isset($_GET['preview'])) { // Redirect to a specific page when previewing the theme wp_redirect(esc_url(add_query_arg(array('page_id' => 123), home_url()))); exit; }