{"id":231420,"date":"2022-12-20T14:57:00","date_gmt":"2022-12-20T11:57:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231420"},"modified":"2022-12-07T10:14:30","modified_gmt":"2022-12-07T07:14:30","slug":"use-o-id-de-usuario-atual-com-pods-para-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/use-o-id-de-usuario-atual-com-pods-para-wordpress\/","title":{"rendered":"Use o ID de usu\u00e1rio atual com pods para WordPress"},"content":{"rendered":"\n<p>O <a href=\"https:\/\/pods.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Pods Framework para WordPress<\/a>, um utilit\u00e1rio espec\u00edfico que existe h\u00e1 muito tempo, oferece muitas funcionalidades que podem facilitar o trabalho com tipos de conte\u00fado avan\u00e7ados, configura\u00e7\u00f5es personalizadas e assim por diante.<\/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=\"Use o ID de usu\u00e1rio atual com pods para WordPress\" ><\/a><\/p>\n<p>Menciono isso porque Pods \u00e9 um utilit\u00e1rio popular e existem alguns recursos dispon\u00edveis que fornecem algumas funcionalidades interessantes.<\/p>\n<p>Atrav\u00e9s do uso de shortcodes, \u00e9 poss\u00edvel realizar algumas consultas de banco de dados poderosas para recuperar informa\u00e7\u00f5es para preencher formul\u00e1rios dinamicamente.<\/p>\n<p>Um caso de uso que vejo aparecendo em alguns resultados \u00e9 como preencher um c\u00f3digo de acesso com o ID do usu\u00e1rio atual. H\u00e1 <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\">uma postagem no f\u00f3rum<\/a> sobre isso aqui e uma discuss\u00e3o cont\u00ednua sobre isso <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\">no Stack Overflow<\/a> tamb\u00e9m.<\/p>\n<p>Mas se voc\u00ea estiver procurando uma maneira de filtrar o conte\u00fado para fazer isso sem retrabalhar alguns dos c\u00f3digos de acesso existentes, h\u00e1 outra maneira de fazer isso.<\/p>\n<h2>Usar o ID do usu\u00e1rio atual com pods<\/h2>\n<p>Digamos que voc\u00ea queira preencher um formul\u00e1rio com o ID do usu\u00e1rio atual sem um shortcode; voc\u00ea pode fazer isso usando um token e um filtro.<\/p>\n<p>Por exemplo, digamos que seu shortcode seja algo <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c8d786d7ca5871a7178e7e7a8ef8443d#file-00-pods-form-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">assim<\/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>Para filtrar isso, em vez de usar um shortcode, voc\u00ea pode <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\">fazer o seguinte<\/a> :<\/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>Isso procurar\u00e1 um token espec\u00edfico na string, o substituir\u00e1 e o retornar\u00e1 com um atributo de c\u00f3digo de acesso compat\u00edvel com Pods antes que o c\u00f3digo de acesso seja processado.<\/p>\n<p>Em seguida, os pods executar\u00e3o a consulta de forma que se pare\u00e7a <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c8d786d7ca5871a7178e7e7a8ef8443d#file-02-final-result-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">com isso<\/a> (supondo que o ID do usu\u00e1rio atual seja 100):<\/p>\n<pre><code>[pods-form name=\"user\" fields=\"first_name, last_name\" where=\"id = 100\" label=\"Update\"]<\/code><\/pre>\n<p>Uma coisa que eu quero deixar claro \u00e9 que eu n\u00e3o recomendo necessariamente isso usando a manipula\u00e7\u00e3o de shortcode.<\/p>\n<p>Em vez disso, use o que melhor se adapta \u00e0 situa\u00e7\u00e3o. Se for shortcodes, veja o c\u00f3digo linkado na introdu\u00e7\u00e3o; caso contr\u00e1rio, talvez o filtro acima funcione bem.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma maneira de filtrar o conte\u00fado da postagem para obter o ID do usu\u00e1rio atual com Pods para WordPress.<\/p>\n","protected":false},"author":1,"featured_media":234974,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[722,837,1021,846,867],"tags":[1170],"class_list":["post-231420","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvedor","category-guia-para-iniciantes","category-sites-uteis","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=231420"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231420\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/234974"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=231420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=231420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=231420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}