{"id":229395,"date":"2022-11-03T15:25:00","date_gmt":"2022-11-03T12:25:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229395"},"modified":"2022-11-09T06:50:20","modified_gmt":"2022-11-09T03:50:20","slug":"que-sont-les-caches-utilisateur-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/que-sont-les-caches-utilisateur-wordpress\/","title":{"rendered":"Que sont les caches utilisateur WordPress ?"},"content":{"rendered":"\n<p>Si vous avez d\u00e9j\u00e0 travaill\u00e9 sur un projet lorsque vous avez besoin de travailler avec des cookies d&rsquo;authentification WordPress, vous \u00eates probablement tomb\u00e9 sur la fonction <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_set_auth_cookie<\/a>. En bref, <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cette fonction<\/a> :<\/p>\n<blockquote>\n<p>D\u00e9finit l&rsquo;ID utilisateur bas\u00e9 sur les cookies d&rsquo;authentification.<\/p>\n<\/blockquote>\n<p>Et lorsque vous utilisez cette fonction, vous cr\u00e9ez essentiellement un cookie qui est utilis\u00e9 pour authentifier l&rsquo;utilisateur pour se connecter \u00e0 WordPress.<\/p>\n<p>Mais si vous cherchez \u00e0 authentifier un utilisateur avec WordPress par programmation, quelques \u00e9tapes suppl\u00e9mentaires sont n\u00e9cessaires pour le faire correctement, surtout si vous travaillez avec des plugins de mise en cache.<\/p>\n<p>Et c&rsquo;est l\u00e0 que les caches d&rsquo;utilisateurs WordPress entrent en jeu.<\/p>\n<h2>Caches utilisateur WordPress<\/h2>\n<p>Outre la simple cr\u00e9ation d&rsquo;un cookie d&rsquo;authentification, il est important de vous assurer que vous proc\u00e9dez comme suit\u00a0:<\/p>\n<ul>\n<li>vider les caches utilisateurs,<\/li>\n<li>supprimer les cookies d&rsquo;authentification,<\/li>\n<li>d\u00e9finir un utilisateur actuel,<\/li>\n<li>param\u00e9trer le cookie d&rsquo;authentification,<\/li>\n<li>mettre \u00e0 jour les caches des utilisateurs.<\/li>\n<\/ul>\n<p>Cela ressemble \u00e0 une solution compliqu\u00e9e, non? La bonne chose est qu&rsquo;il existe une poign\u00e9e de fonctions (li\u00e9es ci-dessus) qui rendent cela vraiment facile.<\/p>\n<p>La chose importante \u00e0 retenir est que vous avez besoin d&rsquo;une instance de WP_User pour faire tout cela. La fa\u00e7on dont vous r\u00e9cup\u00e9rez une instance de l&rsquo;utilisateur d\u00e9pendra de la fonctionnalit\u00e9 de votre plugin.<\/p>\n<p>C&rsquo;est-\u00e0-dire que vous \u00eates peut-\u00eatre en mesure de r\u00e9cup\u00e9rer une r\u00e9f\u00e9rence pour un utilisateur \u00e0 partir d&rsquo; <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e2c4ab9269420c3577485d36c373c54d#file-00-get-user-login-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">un nom d&rsquo;utilisateur<\/a>\u00a0:<\/p>\n<pre><code>&lt;?php\n$user = get_user_by( 'login', $username );<\/code><\/pre>\n<p>Ou peut-\u00eatre avez-vous une adresse e-mail que <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e2c4ab9269420c3577485d36c373c54d#file-01-get-user-email-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vous pouvez utiliser<\/a> :<\/p>\n<pre><code>&lt;?php\n$user = get_user_by( 'email', $email );<\/code><\/pre>\n<p>Quel que soit le cas, les \u00e9tapes suivantes doivent avoir un utilisateur si vous voulez le faire correctement. Cela dit, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e2c4ab9269420c3577485d36c373c54d#file-02-authenticate-user-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">voici \u00e0 quoi le code peut ressembler<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/\/ Clean out any cookies and cookies for an existing user.\nclean_user_cache( $user-&gt;ID );\nwp_clear_auth_cookie();\n\n\/\/ Set the current user and update the caches.\nwp_set_current_user( $user-&gt;ID );\nwp_set_auth_cookie( $user-&gt;ID, true, false );\nupdate_user_caches( $user );\n<\/code><\/pre>\n<p>Et c&rsquo;est tout! Voici donc la description de ce que fait chaque fonction\u00a0:<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/clean_user_cache\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">clean_user_cache<\/a>. Cela supprimera toutes les informations des utilisateurs en cache.<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_clear_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_clear_auth_cookie<\/a>. Lorsqu&rsquo;un utilisateur est authentifi\u00e9 avec WordPress, un cookie est stock\u00e9. Cela effacera ce cookie d&rsquo;authentification.<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_current_user\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_set_current_user<\/a>. \u00c9tant donn\u00e9 une instance de WP_User, dites \u00e0 WordPress de marquer cet utilisateur (permettant qu&rsquo;il existe dans la base de donn\u00e9es)<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_set_auth_cookie<\/a>. Cela cr\u00e9era le cookie utilis\u00e9 pour l&rsquo;authentification de l&rsquo;utilisateur qui vient d&rsquo;\u00eatre d\u00e9fini dans la fonction pr\u00e9c\u00e9dente.<\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/update_user_caches\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">update_user_caches<\/a>. Enfin, cela mettra \u00e0 jour les caches utilisateur avec les informations avec les nouvelles ann\u00e9es.<\/li>\n<\/ul>\n<p>Lorsqu&rsquo;il s&rsquo;agit de travailler avec la mise en cache des utilisateurs WordPress, l&rsquo;authentification et d&rsquo;aller de l&rsquo;avant avec l&rsquo;authentification des utilisateurs par programmation, ce sont les fonctions qui doivent \u00eatre utilis\u00e9es.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si vous cherchez \u00e0 authentifier un utilisateur par programmation, il est important de comprendre les caches d&rsquo;utilisateurs WordPress pour aller de l&rsquo;avant.<\/p>\n","protected":false},"author":1,"featured_media":223663,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,801,841,862],"tags":[1167],"class_list":["post-229395","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-php-3","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=229395"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229395\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/223663"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=229395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=229395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=229395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}