Andando pelo fórum do Tableless, me deparei com esta postagem, e pelo que eu vi, essa é uma grande dúvida para todos que estão iniciando no desenvolvimento com WordPress.
O usuário Angelo Lucas do nosso fórum postou a seguinte resposta:
- Desenvolva o Front-End do tema (HTML, CSS e Javascript)
- Instale o PHP, Mysql na sua máquina. Baixe o WordPress e instale-o, ele vem com alguns temas incluso
- Duplique um tema do wordpress e começe a implementar seu HTML na programação já existente, não é difícil, não é chato.
Gostei bastante da resposta, mas o assunto é tão empolgante que merecia um conteúdo mais detalhado. E para melhorar o aprendizado e nos guiar, desenhei um layout bem simples. Não reparem, sou péssimo design.
Iniciando o desenvolvimento
Com o front-end concluído, duplique o tema padrão do WordPress e altere o nome da pasta duplicada para o nome do seu tema. Acho melhor duplicar, pois se perde um tempo criando os arquivos do zero. Se o seu WordPress for a partir da versão 3.2, terás dois temas padrões: o Twenty Ten e o Twenty Eleven. A diferença é que o Twenty Eleven vem programado nas tags do HTML5.
Depois disso, é importante entender a hierarquia de arquivos do WordPress e saber que sem os arquivos index.php e style.css o tema não funciona.
O arquivo style.css, além do estilo do tema, pode-se preencher informações do tema. Adicione no inicio do style.css esses comentários:
/* Theme Name: Nome do meu Tema Theme URI: https://meusite.com.br Description: Descrição do meu tema Author: Paulo Rodrigues Author URI: https://meusite.com.br Version: 1.0 Tags: branco, vermelho, preto, header, menu, colunas, rodape */
Personalize a partir das suas informações, mas não é necessário preencher todas elas, colocar o nome do tema e o nome do autor está ótimo.
Dois arquivos do tema possuem importância e servem para aumentar a nossa produtividade, que são: header.php e footer.php e essas páginas são incluidas nas páginas através das funções get_header() e get_footer(), respectivamente.
Vou mostrar um exemplo de meus arquivos header.php e footer.php para vocês terem noção.
header.php
<!DOCTYPE html> <html xmlns="https://www.w3.org/1999/xhtml" dir="ltr" lang="pt-BR"> <head profile="https://gmpg.org/xfn/11"> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <title><?php bloginfo('name'); ?><?php wp_title('|'); ?></title> <link rel="stylesheet" type="text/css" href="<?php bloginfo( 'stylesheet_url' ); ?>" /> <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" /> <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('title');?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" /> <!-- Se você for usar comentário no seu tema, deixe isso! --> <?php if ( is_singular() && get_option( 'thread_comments' ) ) wp_enqueue_script( 'comment-reply' );?> <!-- Se você for usar comentário no seu tema, deixe isso! --> <?php //Sempre deixa essa função wp_head(); pois alguns plugins utilizam dela para retornar informação wp_head(); ?> </head> <body <?php body_class(); ?>> <div id="main"> <header> <section id="logo"> <h2><a href="<?php bloginfo('url'); ?>" title="<?php bloginfo('title'); ?>"><span></span><?php bloginfo('title'); ?> - <?php bloginfo('description'); ?></a></h2> </section> <?php //Função para retornar o menu wp_nav_menu(array( 'menu' => 'menu_principal', 'theme_location' => 'menu_principal', 'echo' => true, 'container' => 'nav', 'container_id' => 'menu' )); ?> </header> <div id="container">
Estudem essas funções: bloginfo(), wp_title(), wp_head() e wp_footer().
wp_nav_menu, WTF??? O que é isso, Paulo? Calma, é uma função para retornar menus, confira esse artigo de criação de menus no WordPress, que aí tenho certeza que vai entender tudo.
Personalize essas páginas através do seu front-end, tente explorar o máximo dessas páginas para não perder tempo nas páginas internas.
Finalizando esse inicio, o esqueleto do seu tema está pronto!
Trabalhando com a página inicial e páginas internas
Beleza, concluímos nosso “esqueleto”, e a partir daí vamos criar as páginas do tema. A página índex.php é a página inicial do tema, ela só não é a página inicial, quando adicionamos ao nosso tema a pagina home.php. Mas de inicio, vamos trabalhar com a página índex.php.
Já ouviram falar no Loop do WordPress? Confiram esse artigo pois vão entender para o que ela serve.
Vamos ao exemplo da página inicial:
<?php get_header(); ?> <div id="blog"> <?php while (have_posts()) : the_post(); ?> <section class="post"> <h1 class="title-post"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1> <p>Postado: <?php the_time('F j, Y'); ?> at <?php the_time('g:i a'); ?></p> <?php the_post_thumbnail(); ?> <?php the_content(); ?> </section> <?php endwhile; ?> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
Estude a função the_time() e a forma de customizar data e hora dessa função.
A função the_post_thumbnail serve para retornar os Posts Thumbnails, Caso não tenha interesse, pode remover a função, mas se tiver interesse, aprenda através desse artigo.
A função get_sidebar() serve para retornar o que está no arquivo sidebar.php, e esclareça suas dúvidas nesse artigo para criação de sidebars
Arquivo sidebar.php
<div id="sidebar"> <ul class="sidebar"> <?php if(!function_exists('dynamic_sidebar') || !dynamic_sidebar("Blog Sidebar")); ?> </ul> </div>
Não se limite a esse artigo, aprofunde seu conhecimento através da documentação disponibilizada pelo WordPress. “Futuque” novas funções, pois é assim que se aprende, é quebrando a cara e arriscando. Basta somente ter interesse!
Esperem pelas próximas partes deste artigo, pois vou aprofundar mais esse assunto e pensar no WordPress como um poderoso CMS.
Quero deixar o espaço sempre aberto para quem tiver dúvidas, dar sugestões, criticas construtivas, ect. Podem comentar, enviar email e encher o fórum do Tableless, pois de lá nasceu a idéia para esse artigo e tenho certeza que nascerá os próximos também.