web-dev-qa-db-ja.com

WordPressのドラフトプレビューはどのように生成されますか?

私はWordPressでページのプレビューをトラブルシューティングしようとしています。それらがどのように機能するのか私は完全には理解できません。しかし、私は知っています:

  1. プレビューIDとプレビュー一回だけでプレビューを一意に識別し、プレビューデータをどこから取得するかを示します。

  2. プレビューデータは、格納されているデータではなくページ編集フィールドに入力されたデータを使用するため、データベースから取得されません。

  3. GETパラメータにすべてのデータが含まれていないため、プレビューデータは$_GETに格納されません。

それでは、プレビューデータは$_SESSIONまたはデータベースの他の部分から引き出されたのでしょうか。 WordPressはエディタのフォームフィールドから実際のプレビューページにどのように移動しますか?

6
ΓΓIICK

はい、これはこの post の複製です。私は少し異なる検査メカニズムを提供します。

最小限のasdf投稿をプレビューする前後に、wp cli exportを使用します。

wp export

何も保存せず、プレビューするだけです。

あなたが超大きい自動保存間隔を持っていることを確認してください。 define( 'AUTOSAVE_INTERVAL'、1000000);デフォルトの間隔は60秒です。

その後、diffコマンドツールを使用して2つのxmlファイルを確認します。 wp exportはXMLファイルを返します。

diff *.xml

私はこれが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>

プレビューのためだけにWordPressは draft という投稿を作成しました。私たちの場合?p=1705は、投稿IDが1705になることを意味します。

あなたがこの説明が好きなことを願っています。

WordPressにはPHPセッションはありません。

1
prosti