Mateus Neves, graduado em Produção Digital é web designer, designer gráfico, Wordpress theme developer e preletor. Aplica Workshops sobre Wordpress para web designers e interessados na ferramenta. Hoje é lider da equipe de desenvolvimento da empresa Quartel Design.
Grandes notícias, hoje saiu a versão beta 1 para download do WordPress 3.2, uma versão com grandes novidades. Segue a baixo algumas destas grandes novidades.
Melhorias de desempenho como você nunca viu. O que isso significa? As coisas vão ficar mais rápidas!
Menos distração na escrita. Experiência em tela cheia. O editor visual teve uma grande reformulação, e agora está disponível no modo HTML também. Mais do que nunca, o WordPress permite que você se concentre no que mais importa – o seu conteúdo.
Atualização da interface do usuário Admin. A última grande reformulação do WordPress foi em 2008. Esta não é uma grande remodelação, foram feitas algumas modificações para nos sentirmos mais jovens. WordPress vai fazer 8 anos neste mês se você não sabe.
Novo tema padrão. Apresentando Twenty Eleven, com base no popular tema Duster. Com imagens de cabeçalho, formato de postal, e muito mais.
Procure feliz. WordPress é feito para trabalhar com navegadores modernos. Se você visitar o seu Painel usando um navegador desatualizado, vamos deixar você saber que há uma nova versão disponível para o seu navegador.
Barra de Admin. Nós adicionamos mais links na barra de administração para torná-la ainda mais útil.
WordPress tem novos requisitos do sistema: PHP 5.2.4 e MySQL 5.0.
E agora uma das notícias que me deixou mais orgulhoso ainda do WordPress:
O WordPress não vai ter mais suporte para o Internet Explorer 6
Sempre fiz muito uso da função query_posts() para realizar novas solicitações de conteúdo customizadas e algumas vezes usando o objeto WP_Query(), mas pelo costume e comodismo sempre usei mais a função query_posts() para gerar as query’s que eu queria em temas de WordPress e pelo que já vi de outros desenvolvedores é de costume usar a função query_posts().
Bom, se os dois modos usando query_posts() ou o objeto WP_Query resovem nossas questões, porque existem duas maneiras. Fiz uma pesquisa pelo WordPress Codex e outros sites de desenvolvedores WordPress para saber a diferença destes dois modos de criar querys que são as solicitações que fazemos ao banco de dados do WordPress para nos retornar o conteúdo que queremos exibir.
query_posts()
A primeira e importante informação sobre a função query_posts() em que encontrei na sua descrição no site do WordPress Codex é: “A função query_posts é destinada a alterar a query principal do loop. Para a criação de query’s secundárias, você deve fazer uma nova instância do objeto WP_Query”. Isto quer dizer que, a função query_posts() não foi feita para criar várias querys dentro de um arquivo de template, a função dela é de ser usada uma vez somente em um arquivo de template quando você quer alterar a query padrão de um loop do WordPress onde ele realiza através dos parâmetros vindos da URL da página.
Um exemplo simples e prático é um loop simples de uma página principal de um blog onde o WordPress irá listar todos os posts de todas categorias do blog, paginados pelo número definido no painel do WordPress em Configurações > Leitura, que normalmente são de 10 posts por página.
O loop deste template seria como o exemplo abaixo.
Agora em que caso usaríamos a função query_posts() neste template? Vamos supor que na minha página principal eu não quero que sejam exibidos os posts da categoria de ID=5. É neste caso que faríamos o uso correto da função query_posts(). Nosso código ficaria assim:
Dica: se você quiser preservar a query principal em que o WordPress gera através dos parâmetros vindo da URL e adicionar mais alguns parâmetros extras na query principal utilize como no exemplo abaixo:
Você pode se perguntar, como eu me perguntei também: mas qual o porquê de ter que usar a função query_posts() somente uma vez em meu arquivo de template para alterar o loop principal se já usei várias vezes para poder criar mais de uma query em meus templates?
Resposta: Primeiro se o próprio site do WordPress Codex diz e recomenda que esta função seja usada apenas uma vez em por arquivo de template quando se quer mudar o loop principal, já é um bom argumento, mas mesmo assim não basta veja alguns dos argumentos que encontrei e que realmente me lembraram de experiências causadas pelo mau uso da função query_posts().
Segue alguns dos argumentos para que a função query_posts() seja usada da forma correta:
“Ela define uma série de variáveis globais e por isso pode levar a erros obscuros e horríveis se usada em qualquer outro lugar e para qualquer outra finalidade”
“O uso de query_posts () em um loop que não seja o principal pode causar um resultado incorreto no seu ciclo e possivelmente exibir coisas que você não estava esperando.”
A grande diferença então entre a função query_posts() e o objeto WP_Query() é essa, a função query_posts() deve ser usada somente para alterar a query do loop principal e se o seu template necessitar de outras querys para exibir conteúdos diferentes em outros loops você deve criar uma nova instância do objeto WP_Query() para criar suas querys secundárias.
WP_Query()
Vamos falar agora o objeto WP_Query().
O WordPress Codex define o WP_Query() da seguinte maneira: “Para a criação de loops secundários, você deve fazer uma nova instância da WP_Query e usar em outros loops”
Segue abaixo um exemplo do uso da WP_Query() para se criar um loop secundário em um arquivo de template de um tema de WordPress.
Segue alguns argumentos sobre o uso correto do objeto WP_query:
“Para a criação de loops secundários, você deve fazer uma nova instância da WP_Query e usar neste loop: A razão importante disto é que você não acabe de alguma forma alterando ou interferindo com o loop principal utilizado nessa página”
“Um pouco mais complexa, mas com menos restrições e também seguro de usar em qualquer lugar.”
A WP_Query() não afeta de nenhuma maneira a query principal, por isso foi feita para ser usada na criação de query’s secundárias dentro de um mesmo documento.
Importante: Trabalhe sempre com uma instância do objeto WP_Query() para criar suas query’s secundárias, para que não fiquem várias query’s abertas com o banco de dados, que pode prejudicar a performance do site.
Uma das maneiras muito usadas que não é a correta e melhor prática de se usar quando se quer usar a função query_posts() mais de uma vez em um mesmo documento é de usar a função wp_reset_query() que limpa a query anterior retornando com a original, eu já fiz isso várias vezes. Mas como em qualquer outra ferramenta cada objeto tem sua função específica e o melhor e mais seguro é usar cada objeto para sua finalidade real. Isto vai sempre tornar seu projeto final mais consistente e seguro.
Então vamos deixar o comodismo de lado e fazer bom uso das melhores práticas no desenvolvimento com o WordPress e vamos continuar sempre buscando as melhores práticas.
No dia 30 de Abril de 2011 realizei mais um Workshop de WordPress pela . O Workshop foi muito produtivo, discutimos vários itens sobre o desenvolvimento de sites com WordPress como metodologias e segurança e também criamos juntos um tema completo de site para WordPress. Agradeço a presença de todos os participantes deste Workshop, todos tiveram um bom rendimento e aproveitamos bastante o nosso tempo.
Neste Workshop tivemos a presença de três participantes de Goiânia e dois de Belo Horizonte.
Parabéns a todos participantes.
Na foto da esquerda para direita estão: Diego, Thiago, Jalles, Valdeir e Bruno
Praticar é o melhor exercício para o aprendizado. Nesta semana encontrei três templates (html/css/jquery) com efeitos de navegação muito bacanas usando o jQuery do site . Como estudo decidi pegar um destes templates com estes efeitos fantásticos e transformá-lo em um tema para WordPress totalmente gerenciável.
Eu selecionei três do que eu achei mais interessantes para se trabalhar e vou deixar com vocês para escolherem qual dos três vai se tornar um tema para o WordPress, a votação vai até o dia 29 de Abril.
Após o encerramento da votação vou transformar em um tema gratuíto para WordPress o template mais votato. Clique nas imagens abaixo para ver a demonstração dos efeitos em jQuery.
Qual destes 3 templates em jQuery você quer que eu transforme em um tema para Wordpress?
Thumbnails Navigation Gallery with jQuery (49%, 29 Votos)
Fullscreen Gallery with Thumbnail Flip (25%, 15 Votos)
Um recurso muito interessante e útil do Wordpres são os campos personalizados ou custom fields. Dependendo do seu projeto este recurso pode ser muito útil. Este recurso está disponível para os posts, páginas e também nos custom post types.
Vamos dar um exemplo básico para o uso dos campos personalizados, como um site de filmes por exemplo vamos ter a categoria filmes e que cada post desta categoria será sobre um filme. Usaremos o campo título para o título do filme, o campo de conteúdo para a sinopse do filme e vamos usar os campos personalizados para os dados como:
Ano de produção
Direção
Classificação
Gênero
Duração
1. Após inserir os dados básicos como o título e a sinopse no campo do conteúdo vamos cadastrar os campos personalizados.
2. Vá até a janela de inclusão dos campos personalizados que se encontra logo abaixo do campo de conteúdo do post ou página, como a imagem abaixo:
Se você não visualizar a janela dos campos personalizados basta clicar no botão opções de tela que se encontra no canto superior direito do painel do WordPress e marcar o checkbox campos personalizados.
3. Adicione os campos personalizados como no exemplo da imagem acima onde o campo nome é a chave (key) e o campo valor é claro o valor do seu campo personalizado.
4. Com todos os dados cadastrados, precisamos agora que estes dados sejam exibidos no site. Existe mais de uma forma para exibir os dados dos campos personalizados, vamos usar primeiro a forma mais simples.
5. Abra o arquivo do seu tema em que vai exibir estes dados, o mais comum seria o arquivo single.php, apos exibir o conteúdo do post dentro do loop utilizando a função the_content(), insira logo abaixo a seguinte função:
<?php the_meta(); ?>
6. Salve e visualize seu post para ver o resultado, os dados dos campos personalizados serão exibidos no formato de uma lista que podem ser facilmente estilizadas utilizando css.
A outra forma de recuperar e exibir os valores dos campos personalizados é uma forma que torna mais flexível a manipulação dos dados, podendo ser combinados com outras tags de html para serem exibidos em outros formatos ou até mesmo para serem usados simplesmente para manipular seu código php.
1. Recuperando os dados inserindo dentro de uma variável e exibindo os dados. Insira o código abaixo dentro do seu loop.
A função get_post_meta() recebe três parâmetros o ID do post que recuperamos usando a função get_the_ID(), o nome do campo personalizado (key), e o último parâmetro (single) define se o valor a ser retornado vai ser do tipo String retornando um valor ou Array retornando vários valores se tiver. No caso True ele vai retornar uma string com o valor do campo personalizado.
Importante: No exemplo acima precisei utilizar a função de php utf8_encode() porque o nome do meu campo personalizado continha caracteres especiais, se o nome do seu campo não conter caracteres especiais basta colocar o nome dele entre aspas simples.
2. Quando usar o valor False no parâmetro (single) para que seja retornado uma Array, bom um exemplo simples é se criarmos um campo personalizado (Telefone) e no seu post você inserir três telefones utilizando o campo personalizado (Telefone). Para poder exibir estes dados no seu post você teria que usar o parâmetro (single) como false para retornar uma Array com os três valores do campo (Telefone) e para exibir basta utilizar o exemplo abaixo dentro do seu loop: