{"id":42066,"date":"2014-08-28T14:13:53","date_gmt":"2014-08-28T14:13:53","guid":{"rendered":"https:\/\/br.wordpress.org\/support\/topic\/ajuda-com-shortcode-para-galeria-de-posts\/"},"modified":"2016-08-06T01:31:11","modified_gmt":"2016-08-06T01:31:11","slug":"ajuda-com-shortcode-para-galeria-de-posts","status":"closed","type":"topic","link":"https:\/\/br.wordpress.org\/support\/topic\/ajuda-com-shortcode-para-galeria-de-posts\/","title":{"rendered":"Ajuda com shortcode para galeria de posts"},"content":{"rendered":"<p>Estou desenvolvendo um shortcode gen\u00e9rico para uma necessidade espec\u00edfica que tenho, assim depois posso compartilhar o c\u00f3digo com a comunidade.<\/p>\n<p>Utilizo o plugin Comic Easel, que cria custom posts com o nome de &#8220;comic&#8221; e suas categorias s\u00e3o chamadas de &#8220;chapter&#8221;.<br \/>\nO que eu quero fazer \u00e9 uma lista de thumbnails com link dos \u00faltimos posts do tipo &#8220;comic&#8221; e al\u00e9m disso disponibilizar uma s\u00e9rie de configura\u00e7\u00f5es e filtros para a query do mesmo dentro do shortcode. Por exemplo, alterar o tamanho do thumbnail, aumentar ou reduzir os posts exibidos, filtrar apenas os posts de um determinado &#8220;chapter&#8221;, etc.<\/p>\n<p>Consegui tratar os posts da query quando ela responde com algum registro, mas no geral n\u00e3o vem nada quando filtro pelo shortcode. Preciso de ajuda com a corre\u00e7\u00e3o de algum erro que n\u00e3o encontro no c\u00f3digo abaixo.<\/p>\n<p>Obrigado.<\/p>\n<pre><code>\/\/ Add Shortcode\nfunction recent_posts_with_thumbnails( $atts ) {\n\t\/\/ Attributes\n\textract( shortcode_atts(\n\t\tarray(\n\t\t\t&#039;post_count&#039; =&gt; &#039;3&#039;,\n\t\t\t&#039;post_type&#039; =&gt; &#039;post&#039;,\n\t\t\t&#039;taxonomy_name&#039; =&gt; &#039;&#039;,\n\t\t\t&#039;taxonomy_ids&#039; =&gt; &#039;&#039;,\n\t\t\t&#039;order&#039; =&gt; &#039;DESC&#039;,\n\t\t\t&#039;width&#039; =&gt; 100,\n\t\t\t&#039;height&#039; =&gt; 100,\n\t\t), $attrs )\n\t);\n\n\/\/ Code\n\n$tax_query_array = array();\n\nif (!empty($attrs[&#039;taxonomy_name&#039;])){\n\t$tax_query_array[&#039;taxonomy&#039;] = $attrs[&#039;taxonomy_name&#039;];\n\t$tax_query_array[&#039;field&#039;] = &#039;id&#039;;\n\n\tif (!empty($attrs[&#039;taxonomy_ids&#039;])){\n\t\t$tax_query_array[&#039;terms&#039;] = split(&#039;,&#039;,$attrs[&#039;taxonomy_ids&#039;]);\n\t}\n}\n\n$query_attrs = array(\n\t&#039;post_type&#039; =&gt; $attrs[&#039;post_type&#039;],\n\t&#039;posts_per_page&#039; =&gt; $attrs[&#039;post_count&#039;],\n);\n\nif (!empty($tax_query_array)){\n\t$query_attrs[&#039;tax_query&#039;] = $tax_query_array;\n}\n\n$the_query = new WP_Query($query_attrs);\n\n$output = &quot;&quot;;\n\nwhile ($the_query -&gt; have_posts()) : $the_query -&gt; the_post();\n\t$thumb = wp_get_attachment_image_src( get_post_thumbnail_id(the_ID()), array($attrs[&#039;width&#039;],$attrs[&#039;height&#039;]));\n\t$img_src = $thumb[&#039;0&#039;];\n\t$a_post = get_post(the_ID());\n\t$output .= &#039;&lt;a href=&quot;&#039;.get_permalink(the_ID()).&#039;&quot; title=&quot;&#039;.$a_post-&gt;post_title.&#039;&quot;&gt;&lt;img src=&quot;&#039;.$img_src.&#039;&quot;\/&gt;&lt;\/a&gt;&#039;;\nendwhile;\n\nreturn $output;\n}\nadd_shortcode( &#039;recent_posts_with_thumbnails&#039;, &#039;recent_posts_with_thumbnails&#039; );<\/code><\/pre>\n","protected":false},"template":"","class_list":["post-42066","topic","type-topic","status-closed","hentry","topic-tag-funcao","topic-tag-function","topic-tag-shortcode"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/42066","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":0,"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/42066\/revisions"}],"wp:attachment":[{"href":"https:\/\/br.wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=42066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}