How are WordPress draft previews generated?

Yes, this one is a duplicate of this post.
I will provide little different examination mechanism.

You use wp cli export before and after you preview the minimal asdf post.

wp export

You don’t save anything, you just preview.

Make sure you have super big autosave interval.
define( ‘AUTOSAVE_INTERVAL’, 1000000 );
The default interval is 60 seconds.

After that, you use the diff command tool to check the two xml files.
wp export will return XML files.

diff *.xml

I will get the idea this is a post (state draft) without the title with the content of asdf.

> <item>
>   <title/>
>   <link>http://test100.com/?p=1705</link>
>   <pubDate>Mon, 30 Nov -0001 00:00:00 +0000</pubDate>
>   <dc:creator>admin</dc:creator>
>   <guid isPermaLink="false">http://test100.com/?p=1705</guid>
>   <description/>
>   <content:encoded><![CDATA[asdf]]></content:encoded>
>   <excerpt:encoded><![CDATA[]]></excerpt:encoded>
>   <wp:post_id>1705</wp:post_id>
>   <wp:post_date>2016-12-23 01:03:44</wp:post_date>
>   <wp:post_date_gmt>0000-00-00 00:00:00</wp:post_date_gmt>
>   <wp:comment_status>open</wp:comment_status>
>   <wp:ping_status>open</wp:ping_status>
>   <wp:post_name/>
>   <wp:status>draft</wp:status>
>   <wp:post_parent>0</wp:post_parent>
>   <wp:menu_order>0</wp:menu_order>
>   <wp:post_type>post</wp:post_type>
>   <wp:post_password/>
>   <wp:is_sticky>0</wp:is_sticky>
>   <category domain="category" nicename="uncategorized"><![CDATA[Uncategorized]]></category>
>   <wp:postmeta>
>     <wp:meta_key>_edit_last</wp:meta_key>
>     <wp:meta_value><![CDATA[1]]></wp:meta_value>
>   </wp:postmeta>
> </item>

So just for the preview WordPress created the draft post. In our case ?p=1705, means the post ID will be 1705.

Hope you like this explanation.

In WordPress, there are no PHP sessions.

Leave a Comment