Slide 1

Slide 1 text

Como criar um tema para WordPress

Slide 2

Slide 2 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal @ClaudioSMweb Programador PHP, Python e Ruby; Desenvolve com WordPress há 6 anos; Possui mais de 30 plugins no repositório oficial do WordPress; Líder do projeto Odin Framework; Trabalha atualmente na Infranology.

Slide 3

Slide 3 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal @RafaelFunchal Publicitário, Designer e músico nas horas vagas; Desenvolve com WordPress há 5 anos; Administrador do grupo WordPress Brasil no Facebook; Também participa do projeto Odin Framework.

Slide 4

Slide 4 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Como funciona um tema? De forma básica, funciona com arquivos de templates que carregaram funções com loops/laços para a exibição do conteúdo. Todo o conteúdo virá do banco de dados e desta forma você poderá usar o tema em outros sites/blogs sem nenhum problema.

Slide 5

Slide 5 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Arquivos obrigatórios Os arquivos mínimos para o funcionamento do tema são: style.css header.php index.php footer.php

Slide 6

Slide 6 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Este é o arquivo mais importante! É ele que registra o tema no WP! /* Theme Name: Nome do seu tema Theme URI: Site ou documentação do tema. Description: Descrição do tema Author: Nome do autor Author URI: Site do autor Version: 1.0.0 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html */ style.css

Slide 7

Slide 7 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Precisará pelo menos ter o seguinte formato: > <?php wp_title(); ?> > header.php

Slide 8

Slide 8 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal index.php Exemplo bem simples de um template com loop/laço: >

http://codex.wordpress.org/The_Loop

Slide 9

Slide 9 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Outras funções dentro do loop/laço Veja mais alguns exemplos de funções que exibem conteúdo dentro do loop: the_excerpt() // Resumo do post the_category() // Exibe uma lista de categorias do post the_tags() // Exibe uma lista de tags do post the_author() // Nome do autor the_time( 'd/m/Y' ) // Data da publicação

Slide 10

Slide 10 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Exemplo para o rodapé: footer.php

Slide 11

Slide 11 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Custom Post Type archive-{post_type}.php archive.php index.php Author author-{nicename}.php author-{id}.php author.php archive.php index.php Anexos MIME_type.php Hierarquia dos arquivos Home home.php index.php Front Page front-page.php index.php Single single-{post_type}.php single.php index.php Page page-{slug}.php page-{id}.php page.php index.php Categoria category-{slug}.php category-{id}.php category.php archive.php index.php Tag tag-{slug}.php tag-{id}.php tag.php archive.php index.php Taxonomies taxonomy-{taxonomy}.php taxonomy.php archive.php index.php Date date.php archive.php index.php Resultado da Pesquisa search.php index.php 404 404.php index.php http://codex.wordpress.org/Template_Hierarchy

Slide 12

Slide 12 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal É possível criar funções que poderão ser acessadas de qualquer parte do tema através do arquivo functions.php. E até mesmo é possível alterar o comportamento do Front-end e Back-end trabalhando com filtros (add_filter()) e ganchos (add_action()) . Funções personalizadas

Slide 13

Slide 13 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Exemplo de como carregar scripts no WordPress: function odin_enqueue_scripts() { wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'theme-scripts', get_template_directory_uri() . '/js/scripts.js', array( 'jquery' ), '1.0', true ); } add_action( 'wp_enqueue_scripts', 'odin_enqueue_scripts', 1 ); Exemplo de gancho/action http://codex.wordpress.org/Plugin_API/Action_Reference

Slide 14

Slide 14 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Exemplo de como alterar uma função no WordPress: function odin_excerpt_more( $output ) { $read_more = '
' . __( 'Continue lendo...' ) . ''; return $output . $read_more; } add_filter( 'get_the_excerpt', 'odin_excerpt_more' ); Exemplo de filtro/filter http://codex.wordpress.org/Plugin_API/Filter_Reference

Slide 15

Slide 15 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Veja alguns exemplos: is_home() // Homepage is_front_page() // Front page is_page() // Páginas is_single() // Posts is_category() // Arquivos de categoria is_admin() // Página de administração do WordPress wp_is_mobile() // Verifica o acesso por um dispositivo mobile Tags/funções condicionais http://codex.wordpress.org/Conditional_Tags

Slide 16

Slide 16 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Registrando novas features Você pode registrar diversas novas features para usar no seu tema: register_nav_menu() // Menus dinâmicos register_sidebar() // Sidebars/barra lateral register_post_type() // Novo tipo de conteúdo register_taxonomy() // Nova taxonomia

Slide 17

Slide 17 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal APIs disponíveis Existem várias APIs dentro do WP e as mais interessantes para temas são: Settings API => Permite criar opções no administrador Theme Customization API => Cria um menu para customizar o tema Widgets API => Permite criar novos widgets Shortcode API => Cria pequenos trechos de código para inserir conteúdo extra ou dinâmico dentro dos posts/páginas. http://codex.wordpress.org/WordPress_APIs

Slide 18

Slide 18 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal É possível aproveitar um tema que já existe para ser usado como base. Neste caso a base será o tema PAI e o seu novo tema o FILHO. Tema PAI e FILHO devem estar em pastas separadas dentro de wp- content/themes e indicar quem é o PAI pelo style.css: /* Theme Name: Nome do seu filho ... Template: nome-da-pasta-do-tema-pai ... Temas filhos http://codex.wordpress.org/Child_Themes

Slide 19

Slide 19 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Starter Themes _s (Underscores) Roots Gantry Bones Quark Whiteboard Hybrid Core BootstrapWP Thesis

Slide 20

Slide 20 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Odin Framework wpod.in

Slide 21

Slide 21 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal http://wpod.in/pt-br/docs/

Slide 22

Slide 22 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Perguntas?

Slide 23

Slide 23 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal http://codex.wordpress.org/Theme_Development http://codex.wordpress.org/Template_Hierarchy http://codex.wordpress.org/Function_Reference/get_header http://codex.wordpress.org/Function_Reference/get_footer http://codex.wordpress.org/Function_Reference/wp_head http://codex.wordpress.org/Function_Reference/wp_footer http://codex.wordpress.org/Function_Reference/language_attributes http://codex.wordpress.org/Function_Reference/bloginfo http://codex.wordpress.org/Function_Reference/wp_title http://codex.wordpress.org/Function_Reference/get_stylesheet_uri http://codex.wordpress.org/Function_Reference/body_class http://codex.wordpress.org/The_Loop http://codex.wordpress.org/Function_Reference/have_posts http://codex.wordpress.org/Function_Reference/the_post Links e referências

Slide 24

Slide 24 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal http://codex.wordpress.org/Function_Reference/the_ID http://codex.wordpress.org/Function_Reference/post_class http://codex.wordpress.org/Function_Reference/the_permalink http://codex.wordpress.org/Function_Reference/the_title http://codex.wordpress.org/Function_Reference/the_content http://codex.wordpress.org/Function_Reference/the_excerpt http://codex.wordpress.org/Function_Reference/the_category http://codex.wordpress.org/Function_Reference/the_tags http://codex.wordpress.org/Function_Reference/the_author http://codex.wordpress.org/Function_Reference/the_time http://codex.wordpress.org/Function_Reference/the_date http://codex.wordpress.org/Plugin_API/Action_Reference http://codex.wordpress.org/Plugin_API/Filter_Reference http://codex.wordpress.org/Function_Reference/add_filter Links e referências

Slide 25

Slide 25 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal http://codex.wordpress.org/Function_Reference/add_action http://codex.wordpress.org/Function_Reference/wp_enqueue_script http://codex.wordpress.org/Function_Reference/get_template_directory_uri http://codex.wordpress.org/Function_Reference/get_permalink http://codex.wordpress.org/Conditional_Tags http://codex.wordpress.org/Function_Reference/is_home http://codex.wordpress.org/Function_Reference/is_front_page http://codex.wordpress.org/Function_Reference/is_page http://codex.wordpress.org/Function_Reference/the_date http://codex.wordpress.org/Plugin_API/Action_Reference http://codex.wordpress.org/Plugin_API/Filter_Reference http://codex.wordpress.org/Function_Reference/add_filter http://codex.wordpress.org/Function_Reference/add_action http://codex.wordpress.org/Function_Reference/wp_enqueue_script Links e referências

Slide 26

Slide 26 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal http://codex.wordpress.org/Function_Reference/get_template_directory_uri http://codex.wordpress.org/Function_Reference/get_permalink http://codex.wordpress.org/Conditional_Tags http://codex.wordpress.org/Function_Reference/is_home http://codex.wordpress.org/Function_Reference/is_front_page http://codex.wordpress.org/Function_Reference/is_page http://codex.wordpress.org/Function_Reference/is_single http://codex.wordpress.org/Function_Reference/is_category http://codex.wordpress.org/Function_Reference/is_admin http://codex.wordpress.org/Function_Reference/wp_is_mobile http://codex.wordpress.org/Function_Reference/register_nav_menu http://codex.wordpress.org/Function_Reference/register_sidebar http://codex.wordpress.org/Function_Reference/register_post_type http://codex.wordpress.org/Function_Reference/register_taxonomy Links e referências

Slide 27

Slide 27 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal http://codex.wordpress.org/Settings_API http://codex.wordpress.org/Theme_Customization_API http://codex.wordpress.org/Widgets_API http://codex.wordpress.org/Shortcode_API http://codex.wordpress.org/Child_Themes Links e referências

Slide 28

Slide 28 text

Como criar um tema para WordPress @ClaudioSMweb | @RafaelFunchal Este documento esta licenciado sobre GPLv2. É possível encontrar uma cópia da licença no seguinte link: http://www.gnu.org/licenses/gpl-2.0.txt Licença