Lançado WordPress 2.8 Baker

Foi lançado hoje o WordPress 2.8 Baker em homenagem ao trompetista e vocalista Chet Baker. Nesta versão foram corrigidas mais de 790 bugs e implementados novos recursos para os temas, widgets, taxonomia, interface e performance em geral.

Nesta versão é possível procurar novos temas por cor, número de colunas, largura e diversas características diretamente do repositório do WordPress.org, além de poder instalar dentro da própria administração, como já acontece nos plugins. Outro recurso que será muito bem-vindo, principalmente para os desenvolvedores, é o sintax highlight, aparecendo nos formulários de edição dos código dos temas e plugins (fiquei muitíssimo impressionado!).

Na página de gerenciamento de widgets foi elaborada uma nova interface, facilitando a adição, remoção e edição. Também foi criada uma API para facilitar o desenvolvimento de novos widgets.

Confira abaixo o vídeo de demonstração do próprio pessoal do WordPress apresentando estes e outros recursos do WordPress 2.8 Baker.


p.s. Já instalei a nova versão aqui no pBlog e tudo está funcionando perfeitamente!

Lançado WordPress 2.8 Release Candidate 1

Foi lançado ontem o WordPress 2.8 Release Candidate 1, isto significa dizer que a versão final está praticamente pronta, se não encontrarem mais nenhum problema, o WP 2.8 será lançado na próxima quarta dia 10 de junho.

Caso você queira ajudar, faça o download, teste e avise aos desenvolvedores se encontrar algum problema. Se deseja saber quais foram as modificações feitas desde a última versão consulte o changelog.

Lançado primeira versão beta do WordPress 2.8

Foi lançado ontem o WordPress 2.8 Beta 1 e junto com ele um pacotão de novidades e correções, conheça alguns.

  • Editor de temas e plugins com sintax Highlighting;
  • Não será mais necessário confirmar quando marcar um comentário como spam;
  • Não será enviado um email informando que o próprio autor do post escreveu um comentário;
  • Melhoria na interface dos widgets;
  • Implementação de tecla de atalho para o autosave (ctrl+s);
  • Suporte a mais de uma galeria em uma mesma página/post;
  • Melhoria na instalação para ajudar usuários que digitaram seu email errado;
  • Corrigido o link para lista de categorias mais populares;
  • Atualização do jQuery para a versão 1.3.2;
  • Adição do campo descrição para as tags.

Veja nesta página a lista completa.

Obrigado a Anizio pelo aviso!

WordPress 2.7.1

Saiu aos 45 do segundo tempo de ontem o WordPress 2.7.1, primeira atualização de segurança da última grande versão do nosso sistema de blogs favorito. A nova versão traz correções apresentadas em 68 tickets, e, como sempre, é recomendável instalá-la djá!

Essa é a primeira versão oficial possível de ser instalada via atualização automática. Para tal, no menu do WordPress, expanda o item Ferramentas (Tools), e clique em Atualizar (Upgrade). Na tela que aparecer, clique no botão Atualizar automaticamente (Upgrade Automatically). Espere, e… pronto, WordPress atualizado.

Para quem usa uma versão antiga (2.6.x ou anterior), a atualização ainda é manual. Para esses, e para quem vai instalar, e não atualizar, o WordPress, o instalador está no local de sempre.

Novidades para o WordPress 2.8

O pessoal do Ayuda WordPress percebeu recentemente a existência de dois tickets bastante interessantes na página do WordPress Trac. O primeiro ticket (#8652) prevê a possibilidade de procurar e instalar temas diretamente da administração do WordPress, assim como já acontece com os plugins. E o segundo (#8678), permitirá a exclusão de temas, como também já acontece com os plugins!

Tudo isto será possível graças ao ressurgimento do repositório de temas do WordPress.org e é claro que, a procura e instalação de novos temas só poderá ser feita através deste repositório, onde todos os temas passam por uma criteriosa análise antes de serem disponibilizado.

Espero que junto a estes novos recursos também venham um sistema de cache e outro de backup nativos. :D

Associando posts com páginas

Primeiramente: Oi e desculpe. Faz muito tempo desde meu último post, na verdade faz muito tempo que não posto em lugar nenhum (incluindo a comunidade do WordPress Brasil que nunca mais “pisei lá”). Bom, minhas horas vagas que normalmente utilizaria para postar em fóruns e no meu site ocupo com outros afazeres de fim de ano, ainda não consegui arranjar tempo para botar meu site de volta no ar e minha pauta no trabalho só cresce. Mas enfim, estou aqui e tenho uma ótima dica pra dividir com vocês, é muito simples e muito útil, tive que usar recentemente para criar um sistema de FAQ pelo gerenciador do WP. Então vamos ao que interessa.
É de conhecimento de todos (ou quase todos) que utilizam o WP que ao criar um página é possível encaixar ela dentro de outra página, a chamada hierarquia de mãe e filhos (mother and children). É muito simples, porém útil. A idéia é basicamente criar uma página que poderá ser filha de outra página ou não. Ou seja, se ela não for filha de nenhuma página ela estará na raiz da hierarquia, mas se ela for uma página filha ela estará associada a uma outra página, assim estando abaixo dela. Um exemplo de hierarquia:

  • Sobre nós (mãe na raíz)
    • Parceiros (filho de “Sobre nós”)
    • Organização (filho de “Sobre nós” e mãe de “Funcionários”)
      • Funcionários (filho de “Organização”)
    • Compromissos (filho de “Sobre nós”)

Bom, agora que entenderam a idéia de mother and children, vamos a próxima explicação: Quando escrevemos um post relacionamos categorias a ele, essa é a hierarquia de associação de posts, ou seja, para as páginas o método de associação é M&C (mother and children) enquanto que em posts são as categorias. Got it? Pois bem, o princípio dessa dica é poder além de associar posts a categorias, associar posts a páginas. O “custo” para criar um plugin que faça isso é praticamente zero, tudo já fornecido pelo WordPress. A idéia é replicar o método de associação de páginas M&C para funcionar em posts. Essa é a hora que você pergunta: Com qual propósito? E eu repondo: Lembra da hierarquia exemplo que eu passei logo acima, imagine que você faz o layout da página Funcionários, não seria bacana criar posts com o titulo do nome do funcionário e uma descrição sobre ele e associar esses posts a página “Funcionários” e listar os mesmos, ao invés de criar a categoria “Funcionários” ou uma outra página? Assim podendo selecionar categorias para esse post. Pois bem, esse é o propósito dessa dica. Eu criei um plugin simples que faz exatamente isso. Sabia que se você associar um post a uma página ou uma página a outra página sai mais barato para o MySQL realizar essa consulta? A consulta Página e filhos sejam os filhos posts ou páginas, retorna mais rápido do que uma consulta com categorias, onde a associação de post e categoria envolve mais duas tabelas além da dos posts, ao contrário de uma associação do tipo M&C que envolve só a tabela dos posts. Resumindo, é mais viável associar um post a uma página e puxar por ela, do que associar a uma categoria, mas é necessário uma visão de praticidade também, às vezes, dependendo da utilização das categorias é mais prático utilizar categorias do que páginas, e outras é mais prático utilizar as próprias páginas dentro da página do que associas posts a elas. É preciso ter visão! Agora vamos a utilização do plugin…

Clique aqui para fazer o download da versão 1.0

Ao baixar, passar para o diretório “wp-contents/plugins” e ativá-lo você poderá editar ou criar um post e visualizará abaixo de tags uma caixa com o título “Associar a uma página”, é ai que você associa o post a uma página. Pronto, agora que sabe como associar, vamos ver como pegar essas associações. Abra o template de alguma página ou o arquivo de template padrão de páginas do WordPress “page.php” e adicione entre as funções while e endwhile uma nova while com a função have_children(), ficando algo semelhante a isso:


Posts relacionados:

1) : ?>

Nao ha posts para esta pagina na pagina "".


Essa página não contém nenhuma associação com outros posts.
the_content();
?>

Muito fácil, não?  Essa função have_posts_children() propriamente dita é um get_posts() que pega o ID da página exibida no while com have_posts() e através de um novo while lista os posts associados. A função continue_have_posts() serve para continuar a puxar as informações da página depois que você lista todos os posts relacionados a página, isso quer dizer que você pode fazer até uma paginação dentro da página com os posts relacionados e depois que colocar a função de paginação você coloca a função continue_have_posts() e continua a puxar as informações da página normalmente. Você também pode substituir a função while por foreach definindo o valor true dentro da função have_posts_children(). Assim:


Posts da categoria:


Essa página não contém nenhuma associação com outros posts.



A página que você está tentando acessar não existe.

Lembrando que na função have_posts_children() você pode usar os parâmetros de query_posts(), ou seja, a função have_posts_children() é quase como um segundo query_posts(), onde há um parâmetro padrão que justifica o relacionamento entre posts e outras páginas (ou outros posts também). Esse parâmetro é “post_parent=%” onde no lugar de “%” vai o ID da página citado em have_posts(). Para desativar, esse “post_parent” que é definido por padrão na função e usar have_posts_children() exatamente como uma segunda query, basta definir:



Ficando algo assim:



query_posts_children('post_parent=false');
if(have_posts_children()) : ?>

Todos os posts do site sem precisar ter nenhum relação):


Essa página não contém nenhuma associação com outros posts.



A página que você está tentando acessar não existe.

É ai que entra uma outra função query_posts_children(), ela funciona mais ou menos como query_posts() sobre have_posts(). Só que essa função funciona apenas sobre have_posts_children().

Como havia dito, por padrão have_posts_children() pega os posts associados via parâmetro “post_parent”. Então se associarmos um post em uma página “X”, e associarmos este mesmo post a uma categoria “Y”, podemos puxar via have_posts_children() os posts associados com a página “X” e com a categoria “Y”, através da função query_posts_children().  Assim:



Ou seja, se você aplicou query_posts_children() no template de página do WordPress, a opção acima equivale a:



Digo e repito, que query_posts_children() já define por padrão o parâmetro post_parent, onde o valor é o ID da página.
Outra dica muito bacana e útil com relação a essa função e que você pode ao invés de puxar, posts relacionados, você pode puxar as páginas relacionadas, que seriam as páginas filhas da página que está aberta. Usando query_posts_children() dessa forma:



Também temos uma outra função:



A idéia dessa função é que mesmo que você escreva um post e associe ele a uma página, o WordPress necessita que você associe esse post a uma categoria também, se não associarmos uma categoria, o WordPress associa automaticamente a uma padrão. Mas enfim, a idéia dessa função é burlar isso, de modo que se você entrar na página da categoria na qual o post foi associado não exiba o mesmo se ele estiver associado com uma página também. Deu pra sacar? Se desejarem fazer isso, basta você adicionar no inicio do arquivo de template da categoria essa função, ou para um efeito melhor ainda coloque dentro do arquivo “functions.php” do seu tema. Se este arquivo não existir crie ele. Aliás, você pode copiar todo o código desse plugin e colar dentro do arquivo “functions.php” ao invés de usá-lo como um plugin, daí você estará adaptando o seu tema.

Obs(1).: Lembrando que na hierarquia das páginas você pode ter slugs repetidas, se as estas estiverem em degraus de hierarquia diferentes, ao contrário de categorias que mesmo em degraus diferentes a slug é única.
Ou seja, você pode ter as duas URLs abaixo funcionando perfeitamente se as mesmas forem páginas:
http://www.pblog.com.br/plugins/mais-populares/
http://www.pblog.com.br/temas/mais-populares/
Mas não com categorias, acho isso uma falha do WordPress, mas por outro lado é menos consulta com o MySQL, Alías, pra arrumar isso na hierarquia das categorias não é tão díficil, porém a API do WordPress não facilita muito para esse fim.

Não utilizei muitas linhas para escrever esse plugin, tornando-o simples, porém muito útil como havia dito anteriormente. Talvez eu dê uma nova versão pra ele, posso implementar várias coisas para melhorar a usabilidade.  Bom, essa foi a dica de hoje, eu tenho várias outras dicas interessantes e úteis como essa, porém realmente me falta tempo, mas vou arranjar. Ainda mais quando o meu site voltar ao ar. Mas enfim, espero que tenham curtido. Abraço a todos.

Obs(2).: Eu odiei o layout da versão 2.7!

Clique aqui para fazer o download da versão 1.0 do plugin.