http://www.warna.info/archives/2502/
この記事のコードを利用して解決できました。
lang
1function get_preview_id( $post_id ) {
2 global $post;
3 $preview_id = 0;
4 if ( $post->ID == $post_id && is_preview() && $preview = wp_get_post_autosave( $post->ID ) ) {
5 $preview_id = $preview->ID;
6 }
7 return $preview_id;
8}
9
10
11function get_preview_postmeta( $return, $post_id, $meta_key, $single ) {
12 if ( $preview_id = get_preview_id( $post_id ) ) {
13 if ( $post_id != $preview_id ) {
14 $return = get_post_meta( $preview_id, $meta_key, $single );
15 }
16 }
17 return $return;
18}
19add_filter( 'get_post_metadata', 'get_preview_postmeta', 10, 4 );
20
21
22function save_preview_postmeta( $post_ID ) {
23 global $wpdb;
24
25 if ( wp_is_post_revision( $post_ID ) ) {
26 $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE post_id = $post_ID" );
27 $post_metas = apply_filters( 'preview_post_meta_keys', array( 'meta' ) );
28 foreach ( $post_metas as $post_meta ) {
29 foreach ( $_POST[$post_meta] as $meta_id => $meta_arr ) {
30 add_metadata( 'post', $post_ID, $meta_arr['key'], $meta_arr['value'] );
31 }
32 }
33 do_action( 'save_preview_postmeta', $post_ID );
34 }
35}
36add_action( 'wp_insert_post', 'save_preview_postmeta' );
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。