Enquanto o WordPress 2.8 centrou-se basicamente na
reescrita e otimização da infraestrutura já existente no core do
Wordpress, a versão 2.9, lançada na metade de dezembro passado, traz uma série de
grandes novidades e alterações estruturais importantíssimas para o
futuro da plataforma.
O WordPress 2.9 centra-se essencialmente ao nível dos
desenvolvedores, com uma série de novidades sobre as APIs de
desenvolvimento para WordPress. No entanto, existe uma série de
novidades também para designers de templates e usuários finais. Como resultado, existem uma série de coisas que você precisa
saber sobre o novo WordPress 2.9, portanto, vamos lá!
1. Templates: the_post_image()
Os desenvolvedores de templates têm agora à disposição uma nova
funcionalidade que se tornou extremamente popular em templates. À medida que os blogs foram evoluindo de jornais para
identidades únicas, como as Magazines, o uso de imagens e thumbnail
cresceu também. Tipicamente, este tipo de layout era conseguido a
partir de custom fields que seria criado e manualmente e preenchido da mesma forma. Mas isso acabou!
Com o novo WordPress 2.9, se usar o uploader de imagens
integrado no WordPress, o WordPress tratará de tudo. Os
designers que gostariam de utilizar esta funcionalidade
precisam apenas chamar a tag the_post_image() nos seus
templates para puxar as imagens que desejarem. Esta tag pode,
opcionalmente, ter uma “medida”, que é na realidade uma das dimensões
standard do WordPress: thumbnail, médio, grande, etc. Se nenhuma
dimensão for especificada, ele assumirá por default a dimensão de
thumbnail.
Exemplo:
<?php<br />while( have_posts() ) : the_post();<br />?><br /><div><br /><h1><a href="<?php the_permalink() ?>"><?php the_title() ?></a></h1><br /><?php the_post_image() ?><br /><?php the_content() ?><br /></div><br /><?php endif; ?> 2. Templates: registro de suporte para funcionalidades
Esta pode parecer uma funcionalidade obscura e típica. Mas na
verdade é extremamente simples compreender o que digo olhando para o
cabeçalho. Neste caso, é um pouco mais obscuro pelo fato de sugerir
uma funcionalidade que é introduzida no novo WordPress 2.9 e apenas
para um nicho muito específico. Acredito que esta novidade possa vir a
ser desenvolvida no futuro, e os autores de plugins podem passar a
suportar as suas próprias causas.
O conceito é simples. Se existe uma funcionalidade – no core, o
único caso é o dos thumbnails que descrevi acima e que é intitulado
de ‘post-thumbnails’ – um template pode declarar suporte para a
funcionalidade usando a função add_theme_support() no arquivo functions.php desse mesmo template. Apenas pode ser declarado neste
arquivo e precisa que essa funcionalidade seja especificada com um
nome. Como mencionei, no novo WordPress 2.9 existe apenas uma
funcionalidade com nome definido e essa é a post-image. Os autores de
plugins podem providenciar as suas novas funcionalidades usando a
função require_if_theme_supports().
require_if_theme_supports('my-custom-feature','/path/to/custom-lfeature-library.php');Os templates irão posteriormente ligar o suporte para a
funcionalidade incluindo o seguinte código no seu arquivo functions.php.
if ( function_exists( 'add_theme_support' ) )<br />add_theme_support( 'my-custom-feature' );Utilizamos a verificação function_exists() na função
add_theme_support() para assegurar a retrocompatibilidade com
instalações WordPress posteriores ao novo WordPress 2.9.
3. Usuários: a lixeira
No Windows, chamam-lhe Reciclagem. Nos Macs, chamam-lhe Lixo. Em
ambos os casos, a funcionalidade existe para ajudar os utilizadores a
recuperarem informação eliminada. Com o WordPress, as eliminações
acidentais foram desde sempre permanentes. Não havia forma de voltar
atrás e recuperar do erro. No WordPress 2.9, tudo passa a ser
recuperável com uma nova funcionalidade de Lixeira, bem ao
estilo dos sistemas operacionais. Quando você elimina um artigo, página,
categoria, comentário, ou uma qualquer parte do seu conteúdo, ele é
movido automaticamente para o Lixo, onde você pode posteriormente
decidir se pretende recuperá-lo ou eliminá-lo permanentemente.

A limpeza da lixeira encontra-se automatizada para períodos
de 30 dias por defeito, mas é perfeitamente possível editar este valor
a partir do ficheiro wp-config.php. Adicione o seguinte código para
modificar as características automáticas de limpeza para 7 dias, por
exemplo. Modifique o valor se achar necessário.
define('EMPTY_TRASH_DAYS',7);4. Usuários: Editor de imagens
Uma das grandes novidades do novo WordPress 2.9 é o seu editor de
imagens. Não me interprete mal. Este editor não passou a ser um
Photoshop, apenas suporta funcionalidades básicas neste momento. No
entanto, a edição de imagens irá permitir aos blogueiros cortar
imagens, dimensionar e rodar, tudo dentro do painel de edição do
WordPress. A partir da biblioteca de mídia, poderá editar imagens
clicando no link “Editar” que se encontra junto da imagem, e
posteriormente clicando no botão “Editar” na página individual da
imagem. Isso dá origem a um interface de edição semelhante a isso:

5. Usuários: oEmbed
O oEmbed, tal como descrito em oEmbed.com,
é uma especificação que permite a sites como o
Flickr, YouTube e outros, providenciarem informação para aplicações de
consumo como o WordPress. Portanto, incluindo um Embed (utilize o
uploader do WordPress e escolha a opção “a partir de URL” e cole o link
para a página que contem a mídia, não a mídia propriamente
dita) num artigo ou página, o WordPress consegue apresentar os aspectos
técnicos desse arquivo de mídia e formular automaticamente um formato
que se enquadre no blog.
Se não pretende usar o GUI para este tipo de coisas, poderá
simplesmente colocar a URL da página de mídia com um shortcode
deste tipo:
http://www.youtube.com/watch?v=ZGp220EQUis&feature=popt00us0a
A lista de sites suportados pelo oEmbed em WordPress é a seguinte:
- YouTube (via oEmbed)
- Blip.tv (via oEmbed)
- Flickr images e videos (via oEmbed)
- Hulu (via oEmbed)
- Viddler (via oEmbed)
- Qik.com (via oEmbed)
- Revision3 (via oEmbed)
- Google Video (via interna)
- PollDaddy (via interna)
- DailyMotion (via interna)
Posto isto, os autores de plugins podem adicionar novos provedores se assim o desejarem, utilizando o filtro oembed_providers.
6. Plugins: Custom Post Types
Uma das grandes vantagens do Drupal (ler comparação entre 10 CMS para construir blogs)
tem sido a sua capacidade de ter e gerir vários tipos de conteúdos
contidos em objetos. O WordPress tem suporte uma série de conteúdos ao
longo do tempo também, mas não tem sido flexível utilizar o WordPress
como plataforma de blogging com suporte adicional para páginas e
anexos. Tecnicamente, a função post_types que o WordPress tem suporte
tem sido para artigo, página, revisão e anexo. Embora tenha sido
possível adicionar novos tipos de post_types (como por exemplo podcast,
mp4, ou tutoriais), essa tarefa tem sido extremamente insatisfatória e
requeria aos desenvolvedores de plugins a gestão das partes móveis para
conseguir por tudo a funcionar corretamente.
Isso também acabou. Os autores de plugins têm agora disponível a API
para registar novos post types, abrindo a possibilidade a uma
utilização ainda mais criativa do WordPress.
- get_post_type()
A função get_post_type() apenas pode ser utilizada no Loop. Ela
retorna o tipo de artigo que esse artigo é. Todo o conteúdo no
WordPress é colocado na tabela de artigos (posts), daí o nome “post”.
- get_post_types()
A função get_post_types() retorna uma lista de todos os tipos de
conteúdos existentes. Por padrão, eles serão artigo, página, anexo e
revisão.
- register_post_type()
Como autor de plugins, poderá utilizar esta função para criar novos
“post type”, ou seja, tipos de post. O primeiro argumento é a
especificação única que pretende atribuir ao seu novo post type – vamos
chamar-lhe a título de exemplo, podcast – e o segundo argumento é uma
ordem que contenha elementos adicionais. A primeira chave aqui é a
exclude_from_search, que por padrão está em modo “true”. Poderá
alterar esse parâmetro para “false” exceto se não pretender que a sua
nova post_type seja pesquisável. Veja de seguida o exemplo que propomos.
function wpb_podcast_init()<br />{<br />register_post_type('podcast',array('exclude_from_search' => false) );<br />}<br />add_action('init','wpb_podcast_init');Atualmente ainda não existe um interface de usuários para post
types. Existe já um patch para o UI que provavelmente virá a ser
integrado no WordPress 3.0.
7. Plugins: Comment Meta
Tem existido uma enorme variedade de meta tables no WordPress. As
Meta tables, tal como a usermeta ou postmeta, são tabelas da base de
dados que contêm informação acerca do tipo de dados armazenados no
WordPress. Ela permite aos plugins e ao próprio WordPress que assine
metadata, tais como diferentes níveis de utilizadores e capacidades,
até peças de informação complementares. Agora, passa a existir também
uma nova tabela para comment meta.
Embora ainda não seja claro como é que os autores de plugins irão
utilizar esta tabela, o fato é que é bastante interessante e positivo
ver que começam a existir tabelas para praticamente todo o tipo de
conteúdos no WordPress.
8. Plugins: Metadata API
Com a adição de uma tabela comments meta, tornou-se efetivamente
redundante duplicar funções através do WordPress. Você tem uma função
get_post_meta() que faz precisamente o mesmo que a função
get_usermeta() exceto que ambas vão buscar a mesma informação a
tabelas diferentes que na realidade parecem idênticas excetuando ao
nível da informação da tabela.
No WordPress 2.9, irá aparecer uma nova Metadata API que poderá ser utilizada para puxar informação destas meta tabelas.
A função add_metadata() vai buscar um tipo de meta (‘comentário’,
‘post’, ‘utilizador’, etc), o ID do tipo de conteúdo, a chave e o valor
da metadata, seja a informação única ou não (true ou false).
add_metadata('comment', 12345, 'twitter_id', 'someyoungpunk');Poderá ainda utilizar as funções update_metadata(),
delete_metadata(), get_metadata() e update_meta_cache() para outro tipo
de utilizações. Analise o arquivo wp-includes/meta.php para
documentação completa.







