WordPressが公開前にプレビュー投稿をどのように処理しているのかを調べています。
編集したい投稿の編集モードに入り、いくつかのものを変更し、プレビューを押し、プレビューを変更して表示します。
私の質問は:
たとえあなたが「プレビュー」のためにたった一つのボタンを押したとしても、それは2つの異なる「ルート」で終わるかもしれません。
そのようなものです
http://example.com/postname/?preview=true
2番目は次のようなものです。
http://example.com/postname/?preview_id=152&preview_nonce=xxx&preview=true
つまり、最初の引数にはpreview
クエリ引数が含まれ、2番目の引数には引数が含まれます。
preview_id
preview_nonce
preview
引数を問い合わせます。
preview
クエリ引数はWordPressに、適切な権限を持つユーザーに未公開の投稿の視覚化を許可するように伝えます。
投稿が "ドラフト"として保存されていて、ログインしている場合は、投稿のURLに?preview=true
を追加するだけで、公開されているのと同じようにフロントエンドで表示できます。
2番目の種類のURLは、ポスト自動保存が実行されたときにJavaScriptを介してプレビューボタンに attached です。
自動保存では、投稿テーブルにその投稿がそのまま(変更も含めて)格納されますが、実際の投稿タイプは "revision"タイプに置き換えられます。
より多くの情報を見つける ここ 。
自動保存はバックエンドで定期的に実行されますが、[プレビュー]ボタンをクリックしたときにも実行されます。このように、プレビュー画面では最後の変更が常に表示されます。
これが起こるのです:
preview_id
、preview_nonce
とpreview
クエリ引数を含むブラウザページが開かれますpreview
クエリ引数が存在するため、WordPress 4
で取得した投稿オブジェクトの投稿名と投稿者と一致するようにします4
の位置で取得された投稿オブジェクトは、リビジョン投稿オブジェクトに置き換えられますそれに加えて、プレビューは通常のフロントエンドの通常の投稿要求と同じ方法で処理されますが、ページの表示に使用される投稿オブジェクトがリビジョンデータベースの行から取得されると、最後の変更は保存されません。 。