{"id":231325,"date":"2022-12-20T14:53:00","date_gmt":"2022-12-20T11:53:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231325"},"modified":"2022-12-07T10:14:26","modified_gmt":"2022-12-07T07:14:26","slug":"utiliser-lid-utilisateur-actuel-avec-les-pods-pour-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/utiliser-lid-utilisateur-actuel-avec-les-pods-pour-wordpress\/","title":{"rendered":"Utiliser l&rsquo;ID utilisateur actuel avec les pods pour WordPress"},"content":{"rendered":"\n<p>Le <a href=\"https:\/\/pods.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Pods Framework pour WordPress<\/a>, un utilitaire sp\u00e9cifique qui existe depuis longtemps, offre de nombreuses fonctionnalit\u00e9s permettant de travailler avec des types de contenu avanc\u00e9s, des param\u00e8tres personnalis\u00e9s, etc.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160795-61e7139049979.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160795-61e7139049979.png\" alt=\"Utiliser l&#039;ID utilisateur actuel avec les pods pour WordPress\" ><\/a><\/p>\n<p>Je mentionne cela parce que Pods est un utilitaire populaire et que certaines fonctionnalit\u00e9s disponibles offrent des fonctionnalit\u00e9s int\u00e9ressantes.<\/p>\n<p>Gr\u00e2ce \u00e0 l&rsquo;utilisation de codes abr\u00e9g\u00e9s, il est possible d&rsquo;effectuer de puissantes requ\u00eates de base de donn\u00e9es pour r\u00e9cup\u00e9rer des informations afin de remplir dynamiquement des formulaires.<\/p>\n<p>Un cas d&rsquo;utilisation que je vois appara\u00eetre dans quelques r\u00e9sultats est de savoir comment remplir un shortcode avec l&rsquo;ID de l&rsquo;utilisateur actuel. Il y a <a href=\"https:\/\/pods.io\/forums\/topic\/how-to-filted-pod-items-created-by-the-current-user-and-show-them-in-front-end\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">un post sur le forum<\/a> \u00e0 ce sujet ici et une discussion continue \u00e0 ce sujet <a href=\"https:\/\/stackoverflow.com\/questions\/13490230\/how-to-delegate-to-a-shortcode-function-in-order-to-filter-pod-items-created-by\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sur Stack Overflow<\/a> \u00e9galement.<\/p>\n<p>Mais si vous cherchez un moyen de filtrer le contenu pour le faire sans retravailler certains des shortcodes existants, il existe une autre fa\u00e7on de le faire.<\/p>\n<h2>Utiliser l&rsquo;ID utilisateur actuel avec les pods<\/h2>\n<p>Supposons que vous souhaitiez remplir un formulaire avec l&rsquo;ID de l&rsquo;utilisateur actuel sans code court\u00a0; vous pouvez le faire en utilisant un jeton et un filtre.<\/p>\n<p>Par exemple, disons que votre shortcode ressemble <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c8d786d7ca5871a7178e7e7a8ef8443d#file-00-pods-form-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e0 ceci<\/a> :<\/p>\n<pre><code>[pods-form name=\"user\" fields=\"first_name, last_name\" where=\"current_user_id = user_id\" label=\"Update\"]<\/code><\/pre>\n<p>Pour filtrer cela, au lieu d&rsquo;utiliser un shortcode, vous pouvez <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c8d786d7ca5871a7178e7e7a8ef8443d#file-01-filter-pods-by-current-user-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">proc\u00e9der comme suit<\/a>\u00a0:<\/p>\n<pre><code>&lt;?php\nadd_filter('the_content', __NAMESPACE__. 'filter_pods_by_current_user');\n\/**\n * Replaces the current_user_id = user_id with the current user ID in the\n * incoming content (which includes the Pods shortcode).\n *\n * @param  string $content the content of the shortcode.\n * @return string          the result of the parsed shortcode.\n *\/\nfunction filter_pods_by_current_user($content)\n{\n    $user = wp_get_current_user();\n\n    return str_ireplace(\n        'current_user_id = user_id',\n        \"id='\". $user-&gt;ID. \"'\",\n        $content\n    );\n}\n<\/code><\/pre>\n<p>Cela recherchera un jeton sp\u00e9cifique dans la cha\u00eene, le remplacera, puis le renverra avec un attribut de code court compatible avec les pods avant que le code court ne soit trait\u00e9.<\/p>\n<p>Ensuite, les pods ex\u00e9cuteront la requ\u00eate de telle sorte qu&rsquo;elle ressemble <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c8d786d7ca5871a7178e7e7a8ef8443d#file-02-final-result-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e0 ceci<\/a> (en supposant que l&rsquo;ID de l&rsquo;utilisateur actuel est 100)\u00a0:<\/p>\n<pre><code>[pods-form name=\"user\" fields=\"first_name, last_name\" where=\"id = 100\" label=\"Update\"]<\/code><\/pre>\n<p>Une chose que je veux pr\u00e9ciser, c&rsquo;est que je ne recommande pas n\u00e9cessairement cela plut\u00f4t que d&rsquo;utiliser la manipulation de shortcode.<\/p>\n<p>Utilisez plut\u00f4t ce qui convient le mieux \u00e0 la situation. S&rsquo;il s&rsquo;agit de shortcodes, consultez le code li\u00e9 dans l&rsquo;intro; sinon, peut-\u00eatre que le filtre ci-dessus fonctionne bien.<\/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>Une fa\u00e7on de filtrer le contenu de la publication pour obtenir l&rsquo;ID utilisateur actuel avec Pods pour WordPress.<\/p>\n","protected":false},"author":1,"featured_media":234970,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[717,832,1016,841,862],"tags":[1167],"class_list":["post-231325","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developpeur","category-guide-pour-les-debutants","category-sites-utiles","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231325","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=231325"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231325\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/234970"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=231325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=231325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=231325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}