Pour clarifier le titre de la question ci-dessus, ce que j'essaie de faire est de créer une grille de messages, pour laquelle j'affiche une vignette d'une image attachée à ce message.
Ensuite, en cliquant sur chacune de ces images dans la grille, je souhaite afficher le reste du contenu de la publication (contenant les données de champ personnalisées) via JS sous l'élément de grille.
Tout mon code frontal fonctionne. Cependant, ce que je voudrais faire est de configurer le backend pour interroger les publications une fois (initialement lors de la création de la grille), puis lors de l'affichage de l'aperçu de chaque publication, extraire les champs restants dont j'ai besoin de chaque publication dans mon aperçu HTML et les afficher.
Donc, dans le backend, ce que je veux faire est:
Donc, avec ce scénario en tête. Comment puis-je stocker les résultats de ma requête (dans une fonction) puis accéder à ces données ultérieurement via AJAX?
Merci d'avance, Craig
Le chargement de page est une requête, le logiciel exécuté donne une réponse et une exécution rapprochée. Plus tard, Ajax est une autre demande, totalement séparée. Si vous souhaitez que les objets soient disponibles de manière persistante entre les demandes, vous n’avez que deux options: utiliser API transitoires ou utiliser objet API de cache combinée à un plugin de cache (l’API de cache d’objet n’est pas persistante par défaut).
Un exemple très basique d'API transitoires:
if( false === ( $my_object = get_transient('transient_object_name') ) ) {
// Build your $my_object here
// For example
$args= array();
$query = new WP_Query( $args );
$my_object = $query->get_results();
// Store $my_object in a transient
set_transient('transient_object_name', $my_object );
}
Ensuite, vous pourrez utiliser get_transient('transient_object_name')
ultérieurement pour obtenir le transitoire précédemment stocké.
L'API transitoire stocke l'objet dans la base de données (table d'options) afin de pouvoir l'obtenir dans les requêtes suivantes sans nouvel appel à la base de données (bon, un appel à la base de données pour obtenir le transitoire mais pas l'opération complète pour générer l'objet).
L'API de cache d'objets est très similaire mais n'est pas persistant par défaut. Il stocke les objets mis en cache en mémoire au lieu de la base de données et l'objet n'est mis en cache que pour la demande en cours. Pour le rendre persistant entre des requêtes séparées, vous devez utiliser un plugin de cache persistant, tel que W3TC.
Si un plug-in de cache persistant est disponible, l'API transitoire arrête de stocker le transitoire dans la base de données et fonctionne exactement comme l'API de cache d'objets, stockant en mémoire, mais les données stockées en mémoire sont désormais persistantes dans les deux cas.