J'essaie de résoudre les aperçus de page dans WordPress. Je n'arrive pas à comprendre comment ils fonctionnent. Mais je sais:
L'ID de prévisualisation et le nonce de prévisualisation identifient de manière unique la prévisualisation et indiquent d'où extraire les données de prévisualisation.
Les données de prévisualisation ne sont pas extraites de la base de données car elle n'utilise pas les données stockées, mais les données saisies dans les champs de modification de page.
Les données de prévisualisation ne sont pas stockées dans $_GET
car les paramètres GET n'incluent pas toutes les données.
Les données d'aperçu sont-elles extraites de $_SESSION
ou d'une autre partie de la base de données? Comment WordPress passe-t-il des champs de formulaire dans l'éditeur à la page de prévisualisation?
Oui, celui-ci est un duplicata de ce post . Je vais fournir peu de mécanisme d'examen différent.
Vous utilisez wp cli export avant et après la prévisualisation de la publication asdf
minimale.
wp export
Vous ne sauvegardez rien, vous venez de prévisualiser.
Assurez-vous de disposer d'un intervalle d'enregistrement super grand. define ('AUTOSAVE_INTERVAL', 1000000); L'intervalle par défaut est de 60 secondes.
Ensuite, vous utilisez l'outil de commande diff
pour vérifier les deux fichiers xml
. wp export
renverra des fichiers XML.
diff *.xml
Je vais avoir l'idée qu'il s'agit d'un post (état brouillon) sans le titre avec le contenu de 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>
Donc, juste pour l’aperçu, WordPress a créé le draft post. Dans notre cas, ?p=1705
, signifie que l'identifiant de la publication sera 1705.
J'espère que vous aimez cette explication.
Dans WordPress, il n'y a pas de session PHP.