{"id":624,"date":"2008-09-12T15:00:42","date_gmt":"2008-09-12T15:00:42","guid":{"rendered":"http:\/\/osmeusapontamentos.com\/?p=624"},"modified":"2008-09-12T15:00:42","modified_gmt":"2008-09-12T15:00:42","slug":"data-cloud","status":"publish","type":"post","link":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/","title":{"rendered":"Date Cloud"},"content":{"rendered":"<p>Como prepara\u00e7\u00e3o para um novo layout aqui fica uma pe\u00e7a que vou precisar que \u00e9 uma date cloud ou seja seguir o mesmo principio para criar uma tag cloud mas usar isso para criar os links para o arquivo.<br \/>\nO ideal \u00e9 depois transformar isto num plugin mas por enquanto limitei-me a ver qual o comportamento normal do wordpress e fiz as altera\u00e7\u00f5es necess\u00e1rias para obter aquilo que pretendia.<br \/>\nem baixo est\u00e1 o exemplo concreto bem como o c\u00f3digo.<br \/>\nalgumas notas:<\/p>\n<ul>\n<li>alterar a fun\u00e7\u00e3o get_archives_link que est\u00e1 em general-template.php<br \/>\ntiver que acrescentar mais um tipo de formato (habitualmente link ou html) porque n\u00e3o pude usar o custom j\u00e1 que ele inseria automaticamente uma quebra de linha\n<\/li>\n<li>alterar a fun\u00e7\u00e3o get_archives_link de forma a fazer o processamento necess\u00e1rio para a tag cloud. t\u00e3o simples quanto ver qual o m\u00eas com mais posts e depois enquadrar cada m\u00eas no text-size correspondente: smallest, small, normal, large, largest<\/li>\n<\/ul>\n<phpcode>\n<?php\n\n$args = 'type=monthly&#038;link=html&#038;before=I&#038;after=A&#038;show_post_count=1';\n\tglobal $wpdb, $wp_locale;\n\n\t$defaults = array(\n\t\t'type' => &#8216;monthly&#8217;, &#8216;limit&#8217; => &#8221;,<br \/>\n\t\t&#8216;format&#8217; => &#8216;html&#8217;, &#8216;before&#8217; => &#8221;,<br \/>\n\t\t&#8216;after&#8217; => &#8221;, &#8216;show_post_count&#8217; => false<br \/>\n\t);<\/p>\n<p>\t$r = wp_parse_args( $args, $defaults );<br \/>\n\textract( $r, EXTR_SKIP );<\/p>\n<p>\tif ( &#8221; == $type )<br \/>\n\t\t$type = &#8216;monthly&#8217;;<\/p>\n<p>\tif ( &#8221; != $limit ) {<br \/>\n\t\t$limit = absint($limit);<br \/>\n\t\t$limit = &#8216; LIMIT &#8216;.$limit;<br \/>\n\t}<\/p>\n<p>\t$before = &#8216;<span style=\\'font-size:%1$s\\'>&#8216;;<br \/>\n\t$after = &#8216;<\/span>&nbsp;&#8216;;<\/p>\n<p>\t\/\/ this is what will separate dates on weekly archive links<br \/>\n\t$archive_week_separator = &#8216;&#8211;&#8217;;<\/p>\n<p>\t\/\/ over-ride general date format ? 0 = no: use the date format set in Options, 1 = yes: over-ride<br \/>\n\t$archive_date_format_over_ride = 0;<\/p>\n<p>\t\/\/ options for daily archive (only if you over-ride the general date format)<br \/>\n\t$archive_day_date_format = &#8216;Y\/m\/d&#8217;;<\/p>\n<p>\t\/\/ options for weekly archive (only if you over-ride the general date format)<br \/>\n\t$archive_week_start_date_format = &#8216;Y\/m\/d&#8217;;<br \/>\n\t$archive_week_end_date_format\t= &#8216;Y\/m\/d&#8217;;<\/p>\n<p>\tif ( !$archive_date_format_over_ride ) {<br \/>\n\t\t$archive_day_date_format = get_option(&#8216;date_format&#8217;);<br \/>\n\t\t$archive_week_start_date_format = get_option(&#8216;date_format&#8217;);<br \/>\n\t\t$archive_week_end_date_format = get_option(&#8216;date_format&#8217;);<br \/>\n\t}<\/p>\n<p>\t\/\/filters<br \/>\n\t$where = apply_filters(&#8216;getarchives_where&#8217;, &#8220;WHERE post_type = &#8216;post&#8217; AND post_status = &#8216;publish'&#8221;, $r );<br \/>\n\t$join = apply_filters(&#8216;getarchives_join&#8217;, &#8220;&#8221;, $r);<\/p>\n<p>\tif ( &#8216;monthly&#8217; == $type ) {<br \/>\n\t\t$query = &#8220;SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC $limit&#8221;;<br \/>\n\t\t$key = md5($query);<br \/>\n\t\t$cache = wp_cache_get( &#8216;wp_get_archives&#8217; , &#8216;general&#8217;);<br \/>\n\t\tif ( !isset( $cache[ $key ] ) ) {<br \/>\n\t\t\t$arcresults = $wpdb->get_results($query);<br \/>\n\t\t\t$cache[ $key ] = $arcresults;<br \/>\n\t\t\twp_cache_add( &#8216;wp_get_archives&#8217;, $cache, &#8216;general&#8217; );<br \/>\n\t\t} else {<br \/>\n\t\t\t$arcresults = $cache[ $key ];<br \/>\n\t\t}<br \/>\n\t\tif ( $arcresults ) {<br \/>\n\t\t\t$max=0;<br \/>\n\t\t\tforeach ( $arcresults as $arcresult ) {<br \/>\n\t\t\t\tif ($arcresult->posts > $max) $max = $arcresult->posts;<br \/>\n\t\t\t}<br \/>\n\t\t}<\/p>\n<p>\t\tif ( $arcresults ) {<br \/>\n\t\t\t$afterafter = $after;<br \/>\n\t\t\tforeach ( $arcresults as $arcresult ) {<br \/>\n\t\t\t\t$url\t= get_month_link($arcresult->year,\t$arcresult->month);<br \/>\n\t\t\t\t$text = sprintf(__(&#8216;%1$s %2$d&#8217;), substr($wp_locale->get_month($arcresult->month), 0, 3), $arcresult->year);<\/p>\n<p>\t\t\t\t$tamanho = &#8221;;<br \/>\n\t\t\t\tif (($arcresult->posts \/ $max) >= (6\/7))<br \/>\n\t\t\t\t\t$tamanho = &#8216;xx-large&#8217;;<br \/>\n\t\t\t\telseif (($arcresult->posts \/ $max) >= (5\/7))<br \/>\n\t\t\t\t\t$tamanho = &#8216;x-large&#8217;;<br \/>\n\t\t\t\telseif (($arcresult->posts \/ $max) >= (4\/7))<br \/>\n\t\t\t\t\t$tamanho = &#8216;large&#8217;;<br \/>\n\t\t\t\telseif (($arcresult->posts \/ $max) >= (3\/7))<br \/>\n\t\t\t\t\t$tamanho = &#8216;medium&#8217;;<br \/>\n\t\t\t\telseif (($arcresult->posts \/ $max) >= (2\/7))<br \/>\n\t\t\t\t\t$tamanho = &#8216;small&#8217;;<br \/>\n\t\t\t\telseif (($arcresult->posts \/ $max) >= (1\/7))<br \/>\n\t\t\t\t\t$tamanho = &#8216;x-small&#8217;;<br \/>\n\t\t\t\telseif (($arcresult->posts \/ $max) >= (0))<br \/>\n\t\t\t\t\t$tamanho = &#8216;xx-small&#8217;;<\/p>\n<p>\t\t\t\tif ( $show_post_count )<br \/>\n\t\t\t\t\t$after = &#8216;&nbsp;(&#8216;.$arcresult->posts.&#8217;)&#8217; . $afterafter;<br \/>\n\t\t\t\techo vs_get_archives_link($url, $text, &#8216;dataCloud&#8217;, sprintf($before, $tamanho), $after);<br \/>\n\t\t\t}<br \/>\n\t\t}<br \/>\n\t}<\/p>\n<p>\/* link navigation hack by Orien http:\/\/icecode.com\/ *\/<br \/>\nfunction vs_get_archives_link($url, $text, $format = &#8216;html&#8217;, $before = &#8221;, $after = &#8221;) {<br \/>\n\t$text = wptexturize($text);<br \/>\n\t$title_text = attribute_escape($text);<br \/>\n\t$url = clean_url($url);<\/p>\n<p>\tif (&#8216;link&#8217; == $format)<br \/>\n\t\t$link_html = &#8220;\\t<link rel='archives' title='$title_text' href='$url' \/>\\n&#8221;;<br \/>\n\telseif (&#8216;option&#8217; == $format)<br \/>\n\t\t$link_html = &#8220;\\t<option value='$url'>$before $text $after<\/option>\\n&#8221;;<br \/>\n\telseif (&#8216;html&#8217; == $format)<br \/>\n\t\t$link_html = &#8220;\\t<\/p>\n<li>$before<a href='$url' title='$title_text'>$text<\/a>$after<\/li>\n<p>\\n&#8221;;<br \/>\n\telseif (&#8216;dataCloud&#8217; == $format)<br \/>\n\t\t$link_html = &#8220;$before<a href='$url' title='$title_text'>$text<\/a>$after&#8221;;<br \/>\n\telse \/\/ custom<br \/>\n\t\t$link_html = &#8220;\\t$before<a href='$url' title='$title_text'>$text<\/a>$after\\n&#8221;;<\/p>\n<p>\t$link_html = apply_filters( &#8220;get_archives_link&#8221;, $link_html );<\/p>\n<p>\treturn $link_html;<br \/>\n}<\/p>\n<p> ?>\n<\/phpcode>\n<pre lang=\"php\">\n$args = 'type=monthly&format=link&before=I&after=A&show_post_count=1';\nglobal $wpdb, $wp_locale;\n\n$defaults = array(\n\t'type' => 'monthly', 'limit' => '',\n\t'format' => 'html', 'before' => '',\n\t'after' => '', 'show_post_count' => false\n);\n\n$r = wp_parse_args( $args, $defaults );\nextract( $r, EXTR_SKIP );\n\nif ( '' == $type )\n\t$type = 'monthly';\n\nif ( '' != $limit ) {\n\t$limit = absint($limit);\n\t$limit = ' LIMIT '.$limit;\n}\n\n$before = '<span style=\\'font-size:%1$s\\'>';\n$after = '<\/span>&nbsp;';\n\n\/\/ this is what will separate dates on weekly archive links\n$archive_week_separator = '&#8211;';\n\n\/\/ over-ride general date format ? 0 = no: use the date format set in Options, 1 = yes: over-ride\n$archive_date_format_over_ride = 0;\n\n\/\/ options for daily archive (only if you over-ride the general date format)\n$archive_day_date_format = 'Y\/m\/d';\n\n\/\/ options for weekly archive (only if you over-ride the general date format)\n$archive_week_start_date_format = 'Y\/m\/d';\n$archive_week_end_date_format\t= 'Y\/m\/d';\n\nif ( !$archive_date_format_over_ride ) {\n\t$archive_day_date_format = get_option('date_format');\n\t$archive_week_start_date_format = get_option('date_format');\n\t$archive_week_end_date_format = get_option('date_format');\n}\n\n\/\/filters\n$where = apply_filters('getarchives_where', \"WHERE post_type = 'post' AND post_status = 'publish'\", $r );\n$join = apply_filters('getarchives_join', \"\", $r);\n\nif ( 'monthly' == $type ) {\n\t$query = \"SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC $limit\";\n\t$key = md5($query);\n\t$cache = wp_cache_get( 'wp_get_archives' , 'general');\n\tif ( !isset( $cache[ $key ] ) ) {\n\t\t$arcresults = $wpdb->get_results($query);\n\t\t$cache[ $key ] = $arcresults;\n\t\twp_cache_add( 'wp_get_archives', $cache, 'general' );\n\t} else {\n\t\t$arcresults = $cache[ $key ];\n\t}\n\tif ( $arcresults ) {\n\t\t$max=0;\n\t\tforeach ( $arcresults as $arcresult ) {\n\t\t\tif ($arcresult->posts > $max) $max = $arcresult->posts;\n\t\t}\n\t}\n\n\tif ( $arcresults ) {\n\t\t$afterafter = $after;\n\t\tforeach ( $arcresults as $arcresult ) {\n\t\t\t$url\t= get_month_link($arcresult->year,\t$arcresult->month);\n\t\t\t$text = sprintf(__('%1$s %2$d'), substr($wp_locale->get_month($arcresult->month), 0, 3), $arcresult->year);\n\n\t\t\t$tamanho = '';\n\t\t\tif (($arcresult->posts \/ $max) >= (4\/5))\n\t\t\t\t$tamanho = 'largest';\n\t\t\telseif (($arcresult->posts \/ $max) >= (3\/5))\n\t\t\t\t$tamanho = 'large';\n\t\t\telseif (($arcresult->posts \/ $max) >= (2\/5))\n\t\t\t\t$tamanho = 'normal';\n\t\t\telseif (($arcresult->posts \/ $max) >= (1\/5))\n\t\t\t\t$tamanho = 'small';\n\t\t\telse\n\t\t\t\t$tamanho = 'smaller';\n\n\t\t\tif ( $show_post_count )\n\t\t\t\t$after = '&nbsp;('.$arcresult->posts.')' . $afterafter;\n\t\t\techo vs_get_archives_link($url, $text, 'dataCloud', sprintf($before, $tamanho), $after);\n\t\t}\n\t}\n}\n\n\n\/* link navigation hack by Orien http:\/\/icecode.com\/ *\/\nfunction vs_get_archives_link($url, $text, $format = 'html', $before = '', $after = '') {\n\t$text = wptexturize($text);\n\t$title_text = attribute_escape($text);\n\t$url = clean_url($url);\n\n\tif ('link' == $format)\n\t\t$link_html = \"\\t<link rel='archives' title='$title_text' href='$url' \/>\\n\";\n\telseif ('option' == $format)\n\t\t$link_html = \"\\t<option value='$url'>$before $text $after<\/option>\\n\";\n\telseif ('html' == $format)\n\t\t$link_html = \"\\t<li>$before<a href='$url' title='$title_text'>$text<\/a>$after<\/li>\\n\";\n\telseif ('dataCloud' == $format)\n\t\t$link_html = \"$before<a href='$url' title='$title_text'>$text<\/a>$after\";\n\telse \/\/ custom\n\t\t$link_html = \"\\t$before<a href='$url' title='$title_text'>$text<\/a>$after\\n\";\n\n\t$link_html = apply_filters( \"get_archives_link\", $link_html );\n\n\treturn $link_html;\n}\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Como prepara\u00e7\u00e3o para um novo layout aqui fica uma pe\u00e7a que vou precisar que \u00e9 uma date cloud ou seja seguir o mesmo principio para criar uma tag cloud mas usar isso para criar os links para o arquivo. O ideal \u00e9 depois transformar isto num plugin mas por enquanto limitei-me a ver qual o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[538,687],"class_list":["post-624","post","type-post","status-publish","format-standard","hentry","category-ler-ver-ouvir-passear","tag-programar","tag-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Date Cloud - Os Meus Apontamentos<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Date Cloud - Os Meus Apontamentos\" \/>\n<meta property=\"og:description\" content=\"Como prepara\u00e7\u00e3o para um novo layout aqui fica uma pe\u00e7a que vou precisar que \u00e9 uma date cloud ou seja seguir o mesmo principio para criar uma tag cloud mas usar isso para criar os links para o arquivo. O ideal \u00e9 depois transformar isto num plugin mas por enquanto limitei-me a ver qual o [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/\" \/>\n<meta property=\"og:site_name\" content=\"Os Meus Apontamentos\" \/>\n<meta property=\"article:published_time\" content=\"2008-09-12T15:00:42+00:00\" \/>\n<meta name=\"author\" content=\"Vitor Silva\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vitorsilva\" \/>\n<meta name=\"twitter:site\" content=\"@vitorsilva\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vitor Silva\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2008\\\/09\\\/12\\\/data-cloud\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2008\\\/09\\\/12\\\/data-cloud\\\/\"},\"author\":{\"name\":\"Vitor Silva\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#\\\/schema\\\/person\\\/d508df9c3ffc8b4e64a18dbf0ba18dd8\"},\"headline\":\"Date Cloud\",\"datePublished\":\"2008-09-12T15:00:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2008\\\/09\\\/12\\\/data-cloud\\\/\"},\"wordCount\":171,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#\\\/schema\\\/person\\\/d508df9c3ffc8b4e64a18dbf0ba18dd8\"},\"keywords\":[\"programar\",\"wordpress\"],\"articleSection\":[\"Ler\\\/ Ver\\\/ Ouvir\\\/ Passear\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2008\\\/09\\\/12\\\/data-cloud\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2008\\\/09\\\/12\\\/data-cloud\\\/\",\"url\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2008\\\/09\\\/12\\\/data-cloud\\\/\",\"name\":\"Date Cloud - Os Meus Apontamentos\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#website\"},\"datePublished\":\"2008-09-12T15:00:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2008\\\/09\\\/12\\\/data-cloud\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2008\\\/09\\\/12\\\/data-cloud\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/index.php\\\/2008\\\/09\\\/12\\\/data-cloud\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/osmeusapontamentos.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Date Cloud\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#website\",\"url\":\"https:\\\/\\\/osmeusapontamentos.com\\\/\",\"name\":\"Os Meus Apontamentos\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#\\\/schema\\\/person\\\/d508df9c3ffc8b4e64a18dbf0ba18dd8\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/osmeusapontamentos.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/osmeusapontamentos.com\\\/#\\\/schema\\\/person\\\/d508df9c3ffc8b4e64a18dbf0ba18dd8\",\"name\":\"Vitor Silva\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g\",\"caption\":\"Vitor Silva\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/vitormrsilva\",\"https:\\\/\\\/x.com\\\/vitorsilva\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Date Cloud - Os Meus Apontamentos","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/","og_locale":"pt_PT","og_type":"article","og_title":"Date Cloud - Os Meus Apontamentos","og_description":"Como prepara\u00e7\u00e3o para um novo layout aqui fica uma pe\u00e7a que vou precisar que \u00e9 uma date cloud ou seja seguir o mesmo principio para criar uma tag cloud mas usar isso para criar os links para o arquivo. O ideal \u00e9 depois transformar isto num plugin mas por enquanto limitei-me a ver qual o [&hellip;]","og_url":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/","og_site_name":"Os Meus Apontamentos","article_published_time":"2008-09-12T15:00:42+00:00","author":"Vitor Silva","twitter_card":"summary_large_image","twitter_creator":"@vitorsilva","twitter_site":"@vitorsilva","twitter_misc":{"Escrito por":"Vitor Silva","Tempo estimado de leitura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/#article","isPartOf":{"@id":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/"},"author":{"name":"Vitor Silva","@id":"https:\/\/osmeusapontamentos.com\/#\/schema\/person\/d508df9c3ffc8b4e64a18dbf0ba18dd8"},"headline":"Date Cloud","datePublished":"2008-09-12T15:00:42+00:00","mainEntityOfPage":{"@id":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/"},"wordCount":171,"commentCount":0,"publisher":{"@id":"https:\/\/osmeusapontamentos.com\/#\/schema\/person\/d508df9c3ffc8b4e64a18dbf0ba18dd8"},"keywords":["programar","wordpress"],"articleSection":["Ler\/ Ver\/ Ouvir\/ Passear"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/","url":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/","name":"Date Cloud - Os Meus Apontamentos","isPartOf":{"@id":"https:\/\/osmeusapontamentos.com\/#website"},"datePublished":"2008-09-12T15:00:42+00:00","breadcrumb":{"@id":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/osmeusapontamentos.com\/index.php\/2008\/09\/12\/data-cloud\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/osmeusapontamentos.com\/"},{"@type":"ListItem","position":2,"name":"Date Cloud"}]},{"@type":"WebSite","@id":"https:\/\/osmeusapontamentos.com\/#website","url":"https:\/\/osmeusapontamentos.com\/","name":"Os Meus Apontamentos","description":"","publisher":{"@id":"https:\/\/osmeusapontamentos.com\/#\/schema\/person\/d508df9c3ffc8b4e64a18dbf0ba18dd8"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/osmeusapontamentos.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":["Person","Organization"],"@id":"https:\/\/osmeusapontamentos.com\/#\/schema\/person\/d508df9c3ffc8b4e64a18dbf0ba18dd8","name":"Vitor Silva","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g","caption":"Vitor Silva"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/f81f58ad909e8a213ab0a690f6ed65e5c0e0e2274bf35ac49ff31d7988d483ce?s=96&d=mm&r=g"},"sameAs":["https:\/\/www.linkedin.com\/in\/vitormrsilva","https:\/\/x.com\/vitorsilva"]}]}},"_links":{"self":[{"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/posts\/624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/comments?post=624"}],"version-history":[{"count":0,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/posts\/624\/revisions"}],"wp:attachment":[{"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/media?parent=624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/categories?post=624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/osmeusapontamentos.com\/index.php\/wp-json\/wp\/v2\/tags?post=624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}