Using WordPress ‘post_preview()’ PHP function

The post_preview WordPress PHP function saves a draft or manually autosaves for the purpose of showing a post preview.

Usage

post_preview();

Parameters

  • None

More information

See WordPress Developer Resources: post_preview

Examples

Create a Post Preview Button

Add a post preview button in your WordPress admin area.

// Add a post preview button in your theme's functions.php
function my_theme_post_preview_button() {
  echo '<a href="#" onclick="post_preview(); return false;">Preview Post</a>';
}
add_action('admin_notices', 'my_theme_post_preview_button');

Autosave and Display Post Preview in Custom Meta Box

Trigger autosave and display post preview in a custom meta box.

// Add a custom meta box with a post preview in functions.php
function my_theme_custom_meta_box() {
  add_meta_box('my_theme_post_preview', 'Post Preview', 'my_theme_display_post_preview', 'post');
}
add_action('add_meta_boxes', 'my_theme_custom_meta_box');

function my_theme_display_post_preview($post) {
  echo '<a href="#" onclick="post_preview(); return false;">Preview Post</a>';
  echo '<iframe src="" id="my_theme_post_preview_frame" width="100%" height="600"></iframe>';
}

Trigger Post Preview on Save Draft

Trigger post preview when clicking the “Save Draft” button.

// Add the post_preview function to the Save Draft button in functions.php
function my_theme_save_draft_preview() {
  echo "<script>
  jQuery(document).ready(function($) {
    $('#save-post').click(function() {
      post_preview();
    });
  });
  </script>";
}
add_action('admin_footer', 'my_theme_save_draft_preview');

Display Post Preview on a Custom Admin Page

Create a custom admin page to show the post preview.

// Add a custom admin page in functions.php
function my_theme_custom_admin_page() {
  add_menu_page('Post Preview', 'Post Preview', 'manage_options', 'my_theme_post_preview', 'my_theme_post_preview_page');
}
add_action('admin_menu', 'my_theme_custom_admin_page');

function my_theme_post_preview_page() {
  echo '<a href="#" onclick="post_preview(); return false;">Preview Post</a>';
  echo '<iframe src="" id="my_theme_post_preview_frame" width="100%" height="600"></iframe>';
}

Trigger Post Preview After a Set Interval

Trigger post preview automatically after a set interval, such as every 5 minutes.

// Trigger post preview every 5 minutes in functions.php
function my_theme_autosave_preview() {
  echo "<script>
  jQuery(document).ready(function($) {
    setInterval(function() {
      post_preview();
    }, 300000); // Trigger every 5 minutes (300,000 milliseconds)
  });
  </script>";
}
add_action('admin_footer', 'my_theme_autosave_preview');