Nos últimos anos o WordPress se consolidou como um CMS de sucesso e um exemplo claro disso é a enorme quantidade de Temas e Plugins disponíveis. Com essa crescente adoção e uma quantidade enorme de temas sendo criados todos os dias, era natural que surgissem os frameworks.
Desenvolvedores vem utilizando frameworks há vários anos. Eles são conjuntos de códigos que permitem um grande ganho de produtividade na medida em que evitam que alguns códigos básicos tenham que ser re-escritos a cada novo projeto. Na área de programação web alguns frameworks já consolidados são o Zend (PHP), jQuery (javascript) e blueprint (css). Nesse artigo vamos apresentar como funcionam os Frameworks para desenvolvimento de temas para WordPress e entender as vantagens de utilizá-los.
Frameworks de WordPress não são Frameworks
Bem são mas não são. Eles são frameworks pois se encaixam na definição utilizada acima, servindo de ponto de partida para novos temas. Mas eles não são frameworks pois eles vão além e funcionam como temas completos. Na verdade a maioria dos chamados frameworks são Parent Themes* (Temas Pai) que servem de base para Child Themes (Temas Filhos).
Frameworks na verdade são frameworks + parent theme
Parent themes e Child themes
Child themes são temas que herdam todas características de seu parent theme (estilos, templates de páginas e functions.php) e têm a capacidade de sobre-escrever essas características. Na verdade qualquer tema normal pode funcionar como parent theme, inclusive o tema padrão do WordPress Twenty Ten.
Esse recurso permite que desenvolvedores criem parent themes bastante complexos (comumente chamados de frameworks) que servirão de base para vários outros temas (filhos). Através dessa prática, o tempo de desenvolvimento de novos temas (que serão filhos) pode ser reduzido drasticamente e as atualizações se tornam muito mais simples.
Agora que já entendemos os conceitos, podemos continuar chamando os parent themes de framewoks, pois a nomeclatura é o menos importante aqui.
Tipos de Frameworks
Em post recente sobre o tema, o pessoal do WP Candy separou os frameworks em dois tipos:
- Frameworks para se iniciar temas (Starter theme frameworks)
- Frameworks baseados em opções (Option-based Frameworks)
Enquanto os primeiros são mais simples e oferecem apenas a estrutura básica para se iniciar temas, o segundo grupo é mais elaborado e geralmente permite diversas modificações de layout e em outros recursos do framework através da uma tela de opções.
Ainda que eu não ache que essa classificação seja muito boa (pois alguns frameworks são avançados e não apresentam tela de opções), ela nos é útil para entendermos que existem tipos diferentes de frameworks.
Enfim: existem diversos tipos de frameworks e eles devem ser escolhidos em função de diferentes critérios. Alguns desses critérios podem ser: os objetivos do tema ser desenvolvido, o nível de conhecimento (PHP e CSS) do desenvolvedor e a verba disponível. Em um próximo post vamos aprofundar nessa questão e te ajudar a escolher o seu framework.
Funcionalidades mais comuns
Ainda que nem todos os frameworks disponham das mesmas funcionalidades, algumas delas estão presentes em quase todos. Vamos tentar apresentar de forma resumida essa ferramentas que deixam os frameworks de WordPress tão atrativos.
Folhas de Estilos
Praticamente todos os frameworks vem com CSS Reset, Print.css (usadas em impressão) e uma folha de estilos já pronta com todos os IDs e Classes, cabendo ao desenvolvedor estilizar elementos específicos.
Templates de página (Page templates)
Ao invés de desenvolver do zero modelos de páginas que sejam diferentes daquelas providas pelos temas comuns, ao utilizar frameworks os desenvolvedores podem se aproveitar dos diversos modelos pré-existentes.
[body class="wordpress ltr en_US y2011
m01 d17 h17 monday logged-in singular
singular-post singular-post-87 layout-default"]
Além disso, um bom framework garante um código XHTML válido e classes dinânicas que te permitem aplicar regras de estilo em função da página que o visitante está e outros fatores como dia da semana e idioma.
Funcionalidades avançadas
As funcionalidade avançadas variam muito de framework para framework, mas de um modo geral o que podemos encontrar é:
Opções de SEO avançadas
A maioria dos frameworks vem com um opções avançadas de SEO, como possibilidade de alterar os atributos Title e meta description de cada página/post. Em alguns casos essa opção pode ser desligada (caso o usuário prefira utilizar um plugin).
Sistema de Breadcrumbs
Ainda que uso das migalhas de pão para melhorar a usabilidade seja um consenso, isso é algo que o WordPress não apresenta por padrão. Por essa razão essa é uma funcionalidade que praticamente todo framework traz nativamente.
Widgets Avançados
Alguns frameworks re-escrevem completamente alguns dos widgets-padrão do WordPress de forma a proporcionar mais controle e opções aos usuários. Em alguns casos novos widgets são criados, como por exemplos widgets para exibir últimos tweets.
Outras
Outras opções, que podem variar em função do framework escolhido são:
- Carregamento de jQuery e Javascript para menus dropdown;
- Ativação de suporte a funções avançadas do WordPress (como as que foram inseridas à partir do WordPress 3.0);
- Novas áreas para widgets (sidebars);
- Gestão de thumbnails (miniaturas);
- Atualizações automáticas;
- Etc.
Conclusão
Seja você é um desenvolvedor de temas para WordPress ou apenas um heavy user, os frameworks podem ser muito úteis. Eles permitem a criação de sites elaborados em pouco tempo e em muitos casos permitem também que os usuários façam mudanças profundas no WordPress, inclusive de estilo, sem tocar em nenhuma linha de código.
A quantidade de opções de frameworks disponíveis aumenta a cada dia e certamente existe um que se adequa às suas necessidades. O importante é escolher bem e avaliar se o framework vem sendo atualizado constantemente e se os líderes do projeto tem comprometimento em mantê-lo ativo.
* Nota: O Hybrid e Carrington, que surgiram como Parent Themes, lançaram seu core separadamente constituindo frameworks reais.
O que são e porque usar Frameworks de WordPress Postado originalmente no Universo WP Desvendando o WordPress