Introdução ao desenvolvimento

de temas para

WordPress

http://bit.ly/intro-tema-wp

Marlon Lacerda Amâncio

Bibliotecário por formação e Web Designer por emoção. 

 

Desenvolvo websites e aplicativos com WordPress desde 2010.

marlon@naveguefeliz.com.br

O que é um tema?

Um tema do WordPress é a parte responsável por exibir o conteúdo, definir o layout e design do seu site. 

Qual a diferença entre tema e plugin?

TEMA

Responsável por controlar a apresentação e aparência do conteúdo do site.

PLUGIN

Responsável por controlar o comportamento e funcionalidades do site.

Qualquer tema que você criar não deve conter funcionalidades críticas para o funcionamento do site.

Isso significa que, quando um usuário muda o tema, eles perdem o acesso a essas funcionalidades.

#ficaadica

Do que são feitos os temas?

Os temas são formados por vários tipos de arquivos agrupados dentro de uma pasta.

  • Templates (Arquivos PHP/HTML)
  • Arquivos CSS
  • Arquivos JavaScript
  • Arquivos de imagens
  • Arquivos de localização (tradução)
  • Arquivos de texto

wordpress/wp-content/themes/seutema

O que são os Templates?

Templates são os principais "blocos de construção" do seu tema. São arquivos de modelo que definem como deverá ser gerada a página final.

Os templates são arquivos PHP compostos pela marcação HTML da página a ser gerada, pelas Template Tags do WordPress e outras estruturas do PHP.

Banco de dados

<html>

</html>

<?php

the_content();

?>

Template

WordPress

Documento Web 

(HTML, CSS e JS)

Visão geral do funcionamento de templates

https://seusite.com.br/categoria/marketing

É necessário pelo menos um arquivo de template para seu tema poder gerar a visualização das páginas.

 

Esse template obrigatório é o index.php

Modularidade dos Templates

header.php

Content (Loop)

footer.php

header.php

header.php

footer.php

footer.php

Content (Loop)

sidebar.php

Content (Loop)

Form busca

sidebar.php

comments.php

index.php

index.php

index.php

Como o WP escolhe qual template ele irá usar?

Através da URL requisitada e da Hierarquia de Templates do WordPress

Hierarquia de Templates

FRONT PAGE?

front-page.php > home.php > page.php > index.php

PÁGINA?

{custom-template}.php > page-{slug}.php > page-{id}.php > page.php > singular.php > index.php

POST?

single-{post-type}.php > single.php > singular.php > index.php

ARQUIVO?

category-{slug}.php > category-{id}.php > category.php > archive.php > index.php

404?

404.php > index.php

SEARCH?

search.php > single.php > index.php

https://seusite.com.br/categoria/marketing

BLOG?

home.php > index.php

http://wphierarchy.com/

Afinal, como ficaria o meu tema?

Anatomia de um Tema

index.php

Template "backup" para exibição do conteúdo.

style.css

Folha de estilo principal do tema.

functions.php

  Arquivo de funcionalidades do tema.

page.php

single.php

archive.php

header.php

footer.php

sidebar.php

home.php

front-page.php

Obrigatório

Recomendável

Opcional

Especial

Pasta

404.php

search.php

includes

template-parts

languages

screenshot.png

Partes de Templates

Outros templates

Auxiliares

images

assets

Templates mais comuns

style.css

É a principal folha de estilos do tema. É obrigatória e contém o cabeçalho de informação para descrever seu tema.

/*
Theme Name: Nome do seu tema
Theme URI: https://site-do-seu-tema.com/
Author: Seu Nome
Author URI: https://seu-site.com/
Description: Descrição breve e explicativa do objetivo e funcionalidades do seu tema.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nomedoseutema
Tags: one-column, two-columns, right-sidebar, flexible-header, accessibility-ready, custom-colors, custom-header, custom-menu, custom-logo, featured-images, footer-widgets, post-formats, sticky-post, theme-options, threaded-comments, translation-ready
*/

functions.php

O arquivo functions.php se comporta como um plugin do WordPress, onde você pode adicionar recursos e funcionalidades ao seu tema.

Você pode usá-lo para chamar funções do WordPress e para definir suas próprias funções.

Como criar um template e exibir o conteúdo do site?

Usando as Template Tags e o Loop do WordPress

Template Tags

São funções do WP que auxiliam na construção dos templates e exibição dinâmica do conteúdo. 

 

Podemos usar uma Template Tag para inserir outro arquivo do tema ou buscar uma informação no banco de dados.

<?php the_title(); ?>
<?php get_header(); ?>
<?php bloginfo('name'); ?>
<?php is_front_page(); ?>

Tipos de Template Tags

Include Tags

  • get_header()
  • get_footer()
  • get_sidebar()
  • get_template_part()
  • get_search_form()
  • comments_template()

Template Tags

  • the_title()
  • the_content()
  • the_author()
  • the_category()
  • tag_description()
  • the_terms()
  • comment_date()
  • body_class()
  • the_ID()
  • wp_nav_menu()

Contitional Tags

  • is_home()
  • is_front_page()
  • is_single(123)
  • is_page(42)
  • is_page_template('sobre.php')
  • has_excerpt()
  • is_active_sidebar()
  • is_plugin_active(caminho)

https://developer.wordpress.org/themes/references/list-of-template-tags/

Loop

O Loop é o mecanismo de repetição padrão que o WordPress usa para exibir o  conteúdo resultante da busca (query) no banco de dados.

O Loop

<?php if ( have_posts() ) : ?>
    
    <?php while ( have_posts() ) : the_post(); ?>
        
    /* Exibe conteúdo do post */
    
    <?php endwhile; ?>

<?php endif; ?>

O Loop

<?php if ( have_posts() ) : ?>
    
    <?php while ( have_posts() ) : the_post(); ?>
        
        <h1><?php the_title(); ?></h1>
        
        <?php the_content(); ?>
    
    <?php endwhile; ?>

<?php else : ?>

    <?php echo 'Desculpe, não há posts a exibir.'; ?>

<?php endif; ?>

Loop

Início do loop

Tudo entre este ponto e o fim do loop será repetido até encerrar a lista de posts consultados no BD.

the_title()

Imprime o título do post que está sendo iterado.

the_excerpt()

Imprime o resumo do post que está sendo iterado.

the_content()

Imprime o conteúdo do post que está sendo iterado.

the_category()

Imprime a categoria do post que está sendo iterado.

the_author()

Imprime o autor do post que está sendo iterado.

Fim do loop

Retorna para o início do loop se houver mais posts ou encerra e continua execução do template.

Outras templates tags

Quaisquer outras templates tags deverão entrar no loop.

Sai e continua execução do restante do  template

Onde usar o Loop?

header.php

footer.php

sidebar.php

Query Primária

Queries Secundárias

Quer alterar a Query Principal?

query_posts()

Use o gancho pre_get_posts para alterar a Query Principal ou a classe WP_Query para queries secundárias

Juntando as partes e criando seu primeiro tema

style.css

/*
Theme Name: Nome do seu tema
Theme URI: https://site-do-seu-tema.com/
Author: Seu Nome
Author URI: https://seu-site.com/
Description: Tema exemplo para o Meetup
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nomedoseutema
*/

index.php

<?php get_header(); ?>

<?php if ( have_posts() ) : ?>
    
    <?php while ( have_posts() ) : the_post(); ?>
        
        <h1><?php the_title(); ?></h1>
        
        <?php the_content(); ?>
    
    <?php endwhile; ?>

<?php else : ?>

    <?php _e( 'Desculpe, não há post a exibir.', 'seutema' ); ?>

<?php endif; ?>

<?php get_footer(); ?>

header.php

<!DOCTYPE html>

<html <?php language_attributes(); ?>>

<head>

    <meta charset="<?php bloginfo( 'charset' ); ?>">
    
    <?php wp_head(); ?>

</head>

<body <?php body_class(); ?>>

    <div id="content" class="site-content">

footer.php

    </div><!-- #content -->

    <footer class="site-footer">		
	
        /* Conteúdo do Footer */

    </footer>

<?php wp_footer(); ?>

</body>

</html>
<?php 

if ( ! function_exists( 'meutema_setup' ) ) :
/**
 * Configura o tema e registra suporte para vários recursos do WordPress.
 */
function meutema_setup() {
 
    load_theme_textdomain( 'meutema', get_template_directory() . '/languages' );
 
    add_theme_support( 'automatic-feed-links' );
 
    add_theme_support( 'post-thumbnails' );
 
    register_nav_menus( array(
        'primario'   => __( 'Menu Cabeçalho', 'meutema' ),
        'secundario' => __('Menu Rodapé', 'meutema' )
    ) );
 
}
endif;

add_action( 'after_setup_theme', 'meutema_setup' );

functions.php

Usando
temas filhos

"Child Themes"

Incluindo

CSS e JavaScript

no tema

Referenciando arquivos e pastas do tema

Opções do Tema Customizer API

Outros recursos de temas

Sidebar são áreas destinas a exibir conteúdos além do conteúdo principal. Usualmente sidebars são criadas para exibir Widgets.

Widgets no WordPress são pequenos módulos que oferecem funcionalidades específicas e facilitam sua inserção nos temas através das sidebars.

Menus de navegação permitem a inserção e manutenção de menus de navegação customizados no tema.

Starter Themes e temas para referência

Introdução ao desenvolvimento de temas para WordPress

By Marlon Lacerda Amâncio

Introdução ao desenvolvimento de temas para WordPress

  • 839