Descrição: Guilherme Mazetto, além de destrinchar temas Wordpress, apresenta uma explicação detalhada sobre o funcionamento da plataforma.
WordPress Absolute Beginner's Guide
Nociones generales del CMS WordPressDescripción completa
Documentatie
Descripción completa
Manual desarrollado por Jose Rodriguez y Maite Represa con el patrocinio de Antonia Ledesma Sánchez Diputada de Educación y Juventud de Málaga con el propósito de proporcionar a los jóvenes …Descripción completa
Descrição completa
manual de wordpressDescripción completa
Full description
Full description
A colorful checklist of recommended tools, tips and options for maintaining your WordPress site. Created by TLC for Coaches (www.tlcforcoaches.com)Full description
Descripción: Ebook ni berkenaan installation WordPress cara manual tanpa guna Fantastico kat cPanel. Dan pastinya ebook ni berbahasa melayu dan mempunyai gambarajah langkah demi langkah. Tutorial ini adalah kes...
paduan belajar membuat blog wordpress secara offline, bisa menghemat biaya dan waktu
Aprenda a desenvolver
Temas WordPress http://mazetto.blog.br
Prefácio A internet é lugar de todos. Boa parte dos usuários de internet utilizam-se dos blogs como meio de comunicação e referência para buscar informações informações úteis aos seus cotidianos. cotidianos. A vontade vontade de se epressar e epor pontos de vista no mundo digital é tão grande !ue o número de produtores produtores de conteúdo cresce a cada dia. "eparado com tal situação é poss#vel ver a necessidade desses produtores em entender o funcionamento da publicação de material para $eb. eb. %om intuito de agilizar esse esse trabal bal&o surge rgem os sist sistem ema as gerenci gerenciador adores es de conteúd conteúdo' o' interf interfaces aces altame altamente nte simpli simplific ficada adass e autoautoepli eplicat cativ ivas as capaze capazess de real realiz izar ar funçõ funções es anter anterio iorm rmen ente te conseg consegui uidas das apenas com um bom con&ecimento técnico. (o cenário eistente) o *ord+ress destaca-se como o mais popular entr entre e os sist sistem emas as geren gerenci ciado adores res por por possu possuir ir uma uma forte forte comun comunida idade de colabo colaborati rativa) va) interf interface ace amigáve amigável)l) elevado elevado número número de funciona funcionalid lidades ades e diversas razões mais. ,aman&a popularidade agrava o problema da personalização dos trabal&os) onde muitos possuem o sistema e compartil&am dos mesmos recursos e elementos visuais a serem eibidos aos visitantes. trabal&o proposto tratará fundamentalmente de torná-lo capaz de dese desenv nvol olve verr suas suas prp prpri rias as solu soluçõ ções es para para epo eposi siçã ção o de cont conteú eúdo doss mostrando um modo inteligente de integrar o desenvolvimento $eb padrão ao sistema do *ord+ress de modo a aproveitar bem os seus recursos.
Sumário
4
Sumário Prefácio...................................................................................................... Sumário......................................................................................................4 !onte"do....................................................................................................# $ntrodu%&o................................................................................................'( )esenvolvimento Web.............................................................................'* $n+cio dos trabalhos.................................................................................(, !onstru%&o do tema................................................................................4# -strutura do tema....................................................................................# Aprimoramentos......................................................................................*# !onsidera%es 0inais..............................................................................,4 Ap1ndice A: 2efer1ncia de fun%es.......................................................,# Ap1ndice 3: 0un%es utilizadas...........................................................'#,
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
+ara !uem é feito o livro/.....................................................................01 +ro2eto...................................................................................................03 "idática.................................................................................................03 (otificações......................................................................................04 Alerta...........................................................................................04 (otas adicionais...........................................................................04 Aneos......................................................................................... 04 A2uda................................................................................................05 )esenvolvimento Web.............................................................................'*
%onceitos básicos.................................................................................06 *1% e +adrões $eb.........................................................................06 7,89................................................................................................06 :7,89.............................................................................................06 %;;..................................................................................................<= 9inguagens de (avegadores >Bro$ser ;cripting?.............................<= 9inguagem de ;ervidores >;erver ;cripting?....................................<= Banco de "ados...............................................................................<0 +7+..................................................................................................<0 @uer..............................................................................................<< A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Conteúdo
,ableless...........................................................................................<< 8;9.............................................................................................<< %8;.................................................................................................<< *ordpress.............................................................................................<1 +lugins..............................................................................................<4 ,emas...............................................................................................<5 +or!uê desenvolver um tema *ord+ress/...........................................
*ireframe.............................................................................................1< +adrão de codificação *ord+ress........................................................13 7,89................................................................................................13 Dalidação.....................................................................................13 Eec&amento de ,ags.................................................................... 13 Atributos e tags............................................................................ 14 Aspas........................................................................................... 14 Fndentação...................................................................................15 +7+..................................................................................................1C Aspas simples e duplas......................................... ...................... 1C Fndentação...................................................................................1C Gstilo das %&aves........................................................................1H Iso de espaços...........................................................................16 Dariáveis) funções) nomes de ar!uivos) e operadores ................16 ;inalização de parJmetros...........................................................3= Fnternacionalização...............................................................................30 Ar!uivos +,......................................................................... ..........30 Ar!uivos +..................................................................... ................30 A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Conteúdo
*
Ar!uivos 8.....................................................................................3< %riando entradas..............................................................................3< %riando um template $eb.....................................................................31 inde.p&p..........................................................................................33 stle.css............................................................................................33 !onstru%&o do tema................................................................................4#
Gstilo.....................................................................................................35 ,emplate ,ags.................................................................................. ..... 3H %abeçal&o.............................................................................................3H "ados não confiáveis............................................................................4< Ar!uivo de Eunções............................................................... ...............41 8enus...................................................................................................41 ;idebar..................................................................................................44 (avegação.......................................................................................44 9istas anin&adas...............................................................................44 *idgets............................................................................................45 +ersonalizando a ;idebar.................................................................4C Kodapé.................................................................................................46 ,rabal&ando o conteúdo........................................................................5= 9oop.................................................................................................5= ,&e e LetMt&e...................................................................................50 +lugin A+F 7ooNs..................................................................................51 Actions.............................................................................................. 51 Eilters................................................................................................51 -strutura do tema....................................................................................#
7ierar!uia.............................................................................................55 A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Kesumo.................................................................................................CC ;earc&...................................................................................................CC %onditional ,ags.................................................................................... CH Arc&ive..................................................................................................C6 +osts e páginas.....................................................................................H0 8odelos de +áginas..............................................................................H< %riando um novo modelo de página.................................................H< +áginas adicionais................................................................................H1 ;em comentários..............................................................................H1 ;em ;idebar.....................................................................................H1 +ágina 3=3............................................................................................H3 %lasses do ,ema................................................................................... H4 @avascript..............................................................................................H5 Kegistrando scripts...........................................................................HC Dalidação do formulário....................................................................HC Eol&a de estilos.....................................................................................H6 %lasses do *ord+ress.....................................................................H6 Kegistrando estilos...........................................................................6= ,radução...............................................................................................60 +oGdit...............................................................................................60 ,raduzindo........................................................................................6< A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Conteúdo
,
!onsidera%es 0inais..............................................................................,4 Ap1ndice A: 2efer1ncia de fun%es.......................................................,#
MM.......................................................................................................... 65 Me.......................................................................................................... 6C bloginfo.................................................................................................6H bodMclass............................................................................................66 commentsMpopupMlinN........................................................................0== commentsMtemplate............................................................................0=0 dnamicMsidebar.................................................................................0=< escMattr...............................................................................................0=1 getMaut&orMpostsMurl...........................................................................0=3 getMdaMlinN........................................................................................0=4 getMfooter............................................................................................0=5 getM&eader..........................................................................................0=C getMmont&MlinN....................................................................................0=H getMoption...........................................................................................0=6 getMsearc&Mform..................................................................................00= getMsearc&M!uer................................................................................000 getMsidebar..........................................................................................00< getMtemplateMpart................................................................................001 getMt&eMaut&or....................................................................................003 getMt&eMaut&orMmeta..........................................................................004 getMt&eMcategor.................................................................................005 getMt&eMcategorMlist..........................................................................00C getMt&eMdate.......................................................................................00H getMt&eMtagMlist...................................................................................006 A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Introdução
'(
$ntrodu%&o livro aborda os conceitos essenciais para desenvolvimento de um laout e integração do mesmo com o *ord+ress. Ima se!Oência lgica foi criada com o intuito de facilitar o entendimento do mesmoP atribuindo) apresentando e eplicando novos conceitos Q medida em !ue serão empregados no processo de desenvolvimento do tema. ,al processo será tratado no decorrer de 4 principais partes) são elas' )esenvolvimento Web
Ima breve apresentação de conceitos !ue devem ser de con&ecimento do leitor antes de !ual!uer atividade relacionada ao desenvolvimento propriamente dito. aprendizado do funcionamento das !uestões tratadas implica numa mel&or assimilação do restante do material. $n+cio dos trabalhos
Gtapas iniciais de criação de um template $eb. ;ão apresentados os padrões estabelecidos pelo *ord+ress em sua programação e a capacidade de um ,ema tornar-se internacional com suporte a múltiplos idiomas. !onstru%&o do Tema
A integração do template criado com *ord+ress tem seu in#cio. modo como o modelo é tratado no sistema e a criação de ar!uivos padrão podem ser vistos em amplo funcionamento.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Introdução
'
-strutura do Tema
tema em construção passa por modificações estruturais. (ovos ar!uivos são criados. %on&eça as técnicas de reutilização de modelos em diferentes ar!uivos do ,emas. Aprimoramentos
;ão epostas muitas funcionalidades !ue permitem tornar um tema !ual!uer em outro mais sofisticado com mais recursos e interatividade com o visitante e as páginas !ue esse visita.
Para quem é feito o livro? +ara desenvolver as atividades propostas é recomendado !ue você ten&a um breve con&ecimento de 7,89) %;; e +7+. Gssas noções básicas facilitarão e muito o entendimento dos cdigos !ue serão eibidos. Alguns conceitos das linguagens citadas) como a correta marcação de tags) laços de repetição) declaração de variáveis) seletores e outrosP serão citados) porém superficialmente. A razão disso é o nosso prposito' criação de ,emas *ord+ress e não o de aprendizado de uma linguagem espec#fica. aprendizado é constante) relacionado a ele estará a !ualidade de seu trabal&o. +ara obter mel&ores resultados) não deie de pes!uisar os itens mencionados e sempre prati!ue os conceitos eplorados fazendo seus prprios ,emas *ord+ress.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Introdução
'4
Projeto "urante os cap#tulos desse livro iremos desenvolver um ,ema *ord+ress na #ntegra. Além do ,ema finalizado) ao término do livro você estará apto a desenvolver suas prprias criações uma vez !ue os conceitos estarão bem sedimentados. Docê entenderá como é o funcionamento do *ord+ress como um todo e com relação a interpretação e eibição do tema criado. ;aberá o significado dos termos técnicos e estará capacitado a entender e utilizar-se de outros e novos recursos da ferramenta.
Didática "esenvolveremos nosso tema passo a passo) entendendo e colocando em prática algumas das principais funções do *ord+ress. A apresentação das funções será feita gradativamente com as etapas a serem desenvolvidas. Glas surgirão avulsas em meio as eplicações) !uando aplicadas ao tema. +ara uma descrição mais detal&ada consulte o apêndice de funções. A mel&or maneira de se aprender a fazer algo é fazendo. +or isso é muito importante !ue ao ler esse livro) você vá reproduzindo as etapas ao mesmo passo em !ue evolui as páginas. A cada função apresentada) colo!ue-a em prática em seu tema prprio. %aso você ten&a dificuldades para iniciar a criação de algo) utilize os ar!uivos da produção do livro. %omece do princ#pio e não pule etapas) isso será fundamental para um mel&or proveito do material !ue está lendo.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Introdução
'#
6otifica%es Gm determinados pontos do livro será preciso incluir determinadas informações para !uê o estudo se2a mais dinJmico e acrescente conteúdo relevante ao !ue está em pauta. A maneira encontrada para atingir esse ob2etivo foi criar notificações !ue enfatizam o !uê está sendo visto. De2a !uais são as notificações e suas respectivas funções dentro do livro' Alerta
Docê deve dar atenção para determinados pontos do teto. Keeitera informações e deia claro circunstJncias onde não podem &aver dúvidas.
Abaio está um eemplo de como os cdigos serão eibidos dentro do livro. (o topo estará o nome do ar!uivo onde o cdigo está inserido ou a!uilo !ue ele representa. Exemplo de código – Nome do arquivo // Código Fonte do arquivo
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Introdução
'
A7uda %aso você ten&a dúvida com o uso do *ord+ress) instalação de temas) manuseio de ar!uivos) gerenciamento de informação dentro do %8; no formato de usuário da ferramenta e não do desenvolvedor) acesse &ttp'RRcode.$ordpress.orgR. Gssa é a documentação oficial do *ord+ress onde você encontrará tudo isso) informações atualizadas e muito mais sobre *ord+ress. Ei!ue Q vontade também para deiar sua contribuição Q comunidade do %8;.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Parte I )esenvolvimento Web
Desenvolvimento e!
'
"esenvolver material de !ualidade para $eb pode se tornar uma tarefa fácil desde !ue você domine o espaço !ue pretende adentrar. $eb design eiste como uma etensão do design) cu2a finalidade é 2ustamente a criação de elementos !ue possam trazer mel&ores resultados ao material publicado na internet. +ara o processo de criação ser bem realizado é preciso ter em mente !ue muitos fatores convergem para a produção de um material de !ualidade. Gntre eles destacam-se a usabilidade) acessibilidade e a ar!uitetura da informação diretamente relacionadas ao $eb design transmitindo informações úteis sobre diagramação) laout e disposição dos diferentes componentes em tela. ,endo em mãos um briefing bem elaborado) abordando as principais !uestões referentes ao conteúdo do pro2eto) é necessário definir seus ob2etivos) público alvo) serviços e produtos eplorados) diferenciais de mercado e todas as caracter#sticas !ue possam determinar o mel&or modo de epor tudo em tela. Im conceito importante a ser eplorado é o de usabilidade. Gla define a eperiência do visitante no site tornando sua eperiência prazerosa ou um tormento como resultado de informações confusas e de becos sem sa#das. Ima boa usabilidade mostra ao usuário onde ele está) !uais opções tem de proseguir) como encontrar as informações !ue procura) além de propiciar uma interface amigável a ele onde todos elementos dispostos em tela devem eistir mediante um ob2etivo. ;abendo seus ob2etivos) traçando metas) aplicando bem o laout ao seu pro2etoP respeitando as funções dos elementosP 2á traz ao site uma boa aspiração profissional.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
',
Conceitos básicos W! e Padres 8eb A *1% >*orld *ide *eb %onsortium? é o rgão responsável por recomendar padrões de desenvolvimento para a internet. +or meio destes padrões se pode classificar' $eb sites de acordo com suas caracter#sticas técnicas) indo além do visual eP navegadores) de acordo com sua capacidade em atender aos padrões definidos. grande ob2etivo de seguir os padrões do *1% é de possibilitar !ue a informação veiculada pelo site permaneça independente do dispositivo utilizado pelo visitante e !ue se2a acess#vel.
9T; A 9inguagem de 8arcação de 7iperteto >7,89 - 7per,et 8arNup 9anguage? é uma linguagem de marcação utilizada para produzir páginas na *eb !ue são interpretadas pelos navegadores. s documentos em 7,89 são ar!uivos de teto simples !ue podem ser criados e editados em !ual!uer editor de tetos comum) como o Bloco de (otas do *indo$s.
<9T; A :7,89 >Gtensible 7pertet 8arNup 9anguage? é atualmente a base do "esenvolvimento *eb. Gla é a estrutura de toda a informação !ue é apresentada na Fnternet) como imagens) tetos) formulários) linNs e muito mais.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
(5
!SS A :7,89 depende) em essência) da %;; >%ascading ;tle ;&eets? para formatar a estrutura do seus cdigos nos (avegadores de Fnternet. S uma linguagem de formatação simples e poderosa. %om ela você pode) praticamente) formar !ual!uer tipo de laout) de maneira muito mais clara e eficiente) se comparada com a antiga formatação inclu#da em cdigos 7,89. A %;; anda lado a lado com a :7,89.
;inguagens de 6avegadores =3ro8ser Scripting> As 9inguagens de (avegadores são cdigos de programação inseridos no cdigo :7,89 com a finalidade de incrementar as suas funcionalidades) como inserir data e &ora atual) validar formulários) retornar valores matemáticos e muito mais. Gsses cdigos são interpretados pelos (avegadores de Fnternet >Bro$sers? no momento em !ue as páginas são carregadas >por isso possuem esse nome?. As principais 9inguagens de (avegadores utilizadas são o @ava;cript e o Db;cript) mas o @ava;cript é de longe a mais utilizada e aceita pelos navegadores.
;inguagem de Servidores =Server Scripting> As 9inguagens de ;ervidores talvez se2am os artif#cios mais poderosos da Fnternet. acesso e a manipulação de dados armazenados em Bancos de "ados são uns dos seus principais recursos) e são amplamente utilizados na Fnternet.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
('
Ao contrário do !ue acontece nas 9inguagens de (avegadores) as 9inguagens de ;ervidor são processadas nos servidores onde estão armazenadas as páginas) mesmo possuindo) algumas vezes) a codificação na prpria página. Gistem várias 9inguagens de ;ervidores dispon#veis atualmente. Gntre as mais populares estão' A;+) A;+.(G,) @;+ e +7+. ,odas possuem suas vantagens e desvantagens) mas no geral elas realizam as mesmas tarefas.
3anco de )ados +ara os "esenvolvedores !ue utilizam 9inguagens de ;ervidor é de suma importJncia con&ecer os conceitos de Bancos de "ados Kelacionais e algum ;istema de Lerenciamento de Banco de "ados >;LB"?. s Bancos de "ados são utilizados de diversas maneiras na Fnternet) como armazenar informações sobre produtos de sites de %omércio GletrTnico) manter cadastro de clientes e um infinidade de outras aplicações.
P9P +7+) !ue significa +7+' 7pertet +reprocessor) é uma linguagem de programação de ampla utilização) interpretada) !ue é especialmente interessante para desenvolvimento para a *eb e pode ser mesclada dentro do cdigo 7,89. A sintae da linguagem lembra %) @ava e +erl) e é fácil de aprender. ob2etivo principal da linguagem é permitir a desenvolvedores escreverem páginas !ue serão geradas dinamicamente rapidamente) mas você pode fazer muito mais do !ue isso com +7+.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
((
?@uer @uer é uma biblioteca @ava;cript !ue pode ser utilizada e modificada sem !ual!uer custo. A2uda os desenvolvedores a se concentrarem na lgica dos sistemas da $eb e não nos problemas de incompatibilidade dos navegadores.
Tableless Ima forma de desenvolvimento de sites) sugerida pela *1%) !ue não utiliza tabelas para disposição de conteúdo na página) pois defende !ue os cdigos 7,89 devem ser usados para o propsito !ue foram criados) sendo !ue tabelas foram criadas para eibir dados tabulares.
S@; S um banco de dados relacional !ue está entre os mais utilizados no mundo. Gle é gratuito >open source? e permite a você armazenar) organizar e ler dados de uma maneira muito rápida e eficiente.
!S ;istema de Lerenciamento de %onteúdo >em inglês %ontent 8anagement ;stems?. ;istema gestor de $ebsites) portais e intranets !ue integra ferramentas necessárias para criar e gerenciar conteúdos em tempo real) sem a necessidade de programação de cdigo.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
(
Wordpress Gm sua essência ele é um %8;) gerenciador de conteúdosP voltado especialmente para blogs. Gntretanto eperiências diversas de seus usuários tem mostrado ele com o potencial para gerir portais e sistemas de diferentes tipos e taman&os. *ord+ress surgiu em <==1 com um simples cdigo para mel&orar a tipografia de escrever todos os dias e com poucos usuários. Atualmente é utilizado e visto em mil&ões de sites pelo mundo todo. +rogramado em +7+ e base de dados em 8;9P o sistema agrada também os programadores !ue conseguem dar maior fleibilidade Q ele e criar etensões) plugins e temas.
Site do WordPress
sistema tem como grande diferencial e talvez a resposta para seu rápido crescimento de atuação na internet) o fato do sistema ser cdigo aberto e também possuir interface altamente amigável e personalizável ao usuário. +ara realizar o do$nload do *ord+ress acesse $$$.$ordpress.org. A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
(4
Gsse é o site dos desenvolvedores do sistema) onde encontram-se dispon#veis também plugins e temas !ue você poderá manuseá-los como bem entender. WordPress.org é o site dos desenvolvedores do WordPress, onde podemos fazer o download do !" bem #omo de se$s pl$gins e man$se%&los #omo bem entender. WordPress.#om é o site '$e ofere#e grat$itamente o servi(o de hospedagem para o WordPress.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
(#
Plugins s plugins são funcionalidades !ue os programadores desenvolvem com as rotinas eistentes do *ord+ress >ou não? e o fazem para obter mel&or resposta para diferentes ob2etivos) se2a eibir not#cias reacionadas) ou uma galeria de imagens personalizada. s plugins são os maiores colaboradores da!ueles !ue entendem pouco de programação) pois fazem tudo o !ue propõe bastando ao usuário movê-los para o diretrio de plugins de seu blog. 8uitas vezes possuem páginas administrativas !ue facilitam ainda mais o trabal&o do usuário. %omo o *ord+ress é pro2etado para ser leve) maimizar a fleibilidade e minimizar o acúmulo de cdigoP os +lugins eistem para oferecer funções personalizadas para !ue cada usuário possa personalizar seu site segundo suas necessidades espec#ficas.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
(
Temas *ord+ress possui uma distinta separação entre o conteúdo gerenciável de um blog nele criado com a sua respectiva formatação e eibição em tela. banco de dados 8;9 armazena todas as informações passadas ao sistema) este por sua vez possui uma série de funcionalidades !ue permitem a criação de diferentes modelos de eibição) os temas) para o usuário final.
Motion, um dos muitos temas populares do WordPress
Im tema é 2ustamente a parte visual do seu blog) como ele será apresentado para seu visitante. Gle carrega consigo os elementos visuais !ue compõe as formatações de páginas e uma série de funcionalidades &erdadas do *ord+ress além de abrir espaço ao desenvolvedor de implantar as suas prprias. A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
(*
+ossui uma coleção de ar!uivos !ue trabal&a em con2unto para produzir uma interface gráfica única de um blog. 8odifica a forma como o site é eibido) sem modificar no entanto) o *ord+ress onde está sendo eecutado. s temas podem incluir ar!uivos de imagem) fol&as de estilos) scripts) bem como !uais!uer ar!uivos de cdigo necessário.
Porquê desenvolver um tema WordPress? •
•
•
•
•
•
•
+ara criar um visual único para o seu siteP Aperfeiçoar temas) funções e recursos eistentes do *ord+ress obtendo mel&ores resultadosP %riar modelos alternativos de páginas com caracter#sticas espec#ficas destinadas unicamente a cada tema desenvolvidoP portunidade para aprender mais sobre desenvolvimento $eb e aumentar sua eperiência no ramoP Gstimula a criatividadeP Keceba cr#ticas de seu trabal&o aps compartil&ar o tema criado. As cr#ticas poderão l&e a2udar a aperfeiçoar suas técnicasP %omercialização dos temas criados.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Desenvolvimento e!
(
Tema Escritório Digital
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Parte II $n+cio dos trabalhos
In"cio dos tra!al#os
5
Ao desenvolver um tema é de suma importJncia tomar alguns cuidados para otimizá-lo e deiá-lo mais fle#vel para futuras e eventuais alterações. S preciso ter em mente !ue o tema envolve somente a estrutura do site e não as informações nele contidas. Assim sendo todo o material !ue for inclu#do diretamente através do tema deve ser relevante a ele e também !ue servirá em todas as suas aplicações. %omo 2á foi dito anteriormente) no desenvolvimento de sites para $eb) muitos con&ecimentos são colocados em prática. S preciso ter em mente !ue para se ter um bom resutado final) deve ser con&ecido eatamente o !uê dese2amos ter como resultado final de nossa aplicaçãoP até por razões comparativas. Fsso !uer dizer !ue não se pode simplesmente começar logo de cara digitando lin&as de cdigo !ue não se sabe onde te levarão. Gm primeiro lugar é necessário plane2ar o trabal&o a ser eecutado. ,rabal&e bem a idéia do Brainstorm. (ela você e todos a!ueles envolvidos na tarefa de desenvolver o tema deverão epressar todas as suas idéias por mais surreias !ue se2am) sendo poss#veis ou não de se fazerP com intuito de se ter um grande volume de informações com as !uais trabal&ar. (essa etapa faça !uestionamentos como' •
ual assunto será trabal&ado/
•
ual tipo de informação será veiculada/
•
%omo a informação será tratada >páginas) not#cias) linNs?/
•
uais seções o site deverá possuir/
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
'
Gnfim) !uestões !ue possam te dar uma idéia de como poderá ser o seu resultado final. Eaça algumas pes!uisas na prrpria $eb com intuito de obter referências para seu trabal&o. 8uito material de !ualidade pode ser encontrado) até mesmo de forma gratuita. Tome #$idado e n)o #onf$nda tomar $m trabalho de o$tra pessoa #omo refer*n#ia+ #om pl%gio, #pia n)o a$torizada. Ter $m tema #omo refer*n#ia é a#ess%&lo e est$dar o posi#ionamento dos #omponentes, estilos empregados, harmonia do design+ para posteriormente em s$a #ria()o, trabalhar #om alg$m-s desses elementos sem '$e ne#essariamente se$ res$ltado final sea semelhante ao modelo fonte.
+ara ilustrar esse conceito) defini como resultado de um Brainstorm) as seguintes condições para nosso tema' •
Im blog será desenvolvido
•
Ima paginação de not#cias será necessária
•
+áginas de buscas
•
+áginas personalizadas
•
"everá eibir nome e descrição do blog
•
(ecessariamente eistirá um menu de páginas
•
•
Gspaço para conteúdo interativo) especificado por !uem mais for utilizar o tema %réditos
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
(
Wireframe "efinimos nosso conteúdo e todo o material a ser eplorado dentro do nosso site) precisamos agora criar um esboço do nosso trabal&o. Earemos então uma prévia) sem programar ainda) !ue nos possibilite visualizar como será o tema para os visitantes do blog. +ara isso criaremos um *ireframe. *ireframe é um desen&o básico) como um es!ueleto) !ue demonstra de forma direta a ar!uitetura de como o laout será de acordo com as especificações determinadasP seu ob2etivo é auiliar o entendimento dos re!uisitos !ue foram escol&idos com relação as funções e ob2etos !ue o sistema deverá possuir. A criação de um $ireframe pode ser feita manualmente com materiais de escritrio como lápis) caneta) borrac&a e fol&as sulfite. "esse modo você consegue além de plane2ar o futuro laout do blog) economizar tempo no processo. u então você pode utilizar algum editor de imagens >vetoriais preferencialmente? com o !ual ten&a intimidade com o manuseio e obter ecelentes resultados) de mel&or !ualidade) com a mesma economia de tempo investido. Importante ressaltar '$e o res$ltado final do trabalho a ser desenvolvido independe da ferramente $tilizada. Para edi()o dos ar'$ivos P0P, por e1emplo, $tilizar editores rob$stos o$ o blo#o de notas n)o define o #digo a ser #riado #omo bom o$ r$im, depender% $ni#amente do '$e vo#* ir% digitar. 2 mesmo serve para softwares de #ria()o e edi()o de imagens.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
tema a ser desenvolvido foi denominado UAprendizU. (ele trabal&aremos os principais conceitos e recursos !ue o *ord+ress oferece para o processo de desenvolvimento e customização de temas. +or isso) nossos es!uemas deverão respeitar os seguintes esboços'
Wireframes do projeto Aprendiz
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
4
Padrão de codificação WordPress Antes de desenvolver o tema) eistem algumas normas criadas para *ord+ress com intuito de padronizar seu cdigo-fonte. ;eguir tais padrões não é obrigatrio) porém é muito interessante !uando se !uer compartil&ar algo desenvolvido e !ue outras pessoas entendam facilmente o material.
9T; alidação
,odas as páginas 7,89 devem ser verificadas pelo validador da *1% certificando !ue a marcação está sendo bem feita. Gsse recurso não necessariamente indica !ue um cdigo é bom ou ruim) mas a2uda a entendê-lo e encontrar problemas !ue poderão eistir !uando o cdigo for aplicado ao servidor. Ainda assim é sempre necessário uma revisão manual do cdigo fonte.
!ec"amento de #a$s
,odas as tags devem estar fec&adas. +ara tags !ue não possuem fec&amento pelo padrão da marcação VtagWVRtagW como o caso das tags VbrW e VimgW a terminação com a barra invertida XRX é imprescind#vel. (esses casos ainda o correto é deiar um espaço entre a tag e seu fec&amento) passando de VbrRW na forma incorreta) para Vbr RW no modelo correto dos padrões.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
#
Atributos e ta$s
,odas as tags e seus atributos devem estar em letras minúsculas. s atributos deverão respeitar a norma de caia baia !uando escritos com o propsito de serem lidos apenas por má!uinas. ;e a informação do atributo deverá ser interpretado por &umanos) deverá respeitar a maior legibilidade dos dados. $ara máquinas <meta http-equiv="content-type" content="text/html" />
"e acordo com o *1%) todos os atributos devem possuir um valor) e deve ser usado para este aspas simples ou duplas necessariamente. A seguir ve2a os eemplos do modo correto e incorreto do uso de aspas para delimitar os valores dos atributos das tags. Correto
Incorreto
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
%ndentação
%omo no +7+) a indentação no 7,89 deve sempre refletir a estrutura lgica e deverá ser feita com tabulações e não espaços. Ao misturar os cdigos +7+ e 7,89) os blocos de indentação +7+ deverão respeitar o cdigo 7,89 de modo !ue os n#veis de abertura e fec&amento de um se encaiem ao do outro. Correto <'php if ( ) have*pot(+ + : '>
ot Found
.pologie &ut no reult 0ere found
<'php get*earch*form(+1 '>
<'php endif1 '>
Incorreto <'php if ( ) have*pot(+ + : '>
ot Found
.pologie &ut no reult 0ere found
<'php get*earch*form(+1 '>
<'php endif1 '>
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
*
P9P Aspas simples e duplas
Ise aspas simples e duplas !uando apropriado. ;e você não estiver tratando nada na string) use use aspas simples. Docê nunca deve escapar aspas 7,89 numa string) por!ue você apenas precisa alternar entre os tipos de aspas) assim' Exemplo echo 4ome do lin541 echo "8nomedolin5"1
A única eceção é no @ava;cript) !ue as vezes re!ues aspas simples ou duplas. ,etos !ue ven&am dentro de atributos devem passar pelo attributeMescape>? assim as aspas simples ou duplas não fec&am o atributo e invalidam o :7,89 causando um problema de segurança.
%ndentação
;ua indentação deve sempre refletir uma estrutura lgica. Ise tabs reais e não espaços) pois isso permite maior fleibilidade entre clientes. Kegra de ouro' tabs devem ser usadas no in#cio das lin&as e espaços devem ser usados no meio das lin&as. Gceção' se você tem um bloco de cdigo !ue se2a mais leg#vel se estiver alin&ado) use espaços' Exemplo 8foo 8foo9 8foo 8foo3
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
&stilo das C"aves
%&aves devem ser usadas em multiplos blocos. ;e você tiver um bloco muito grande) considere !uebrá-lo em dois ou mais blocos ou funções. %aso se2a realmente necessária a eistência desse longo bloco) por favor pon&a um pe!ueno comentário no final para !ue as pessoas percebam de relance o !ue a!uela c&ave de fec&amento está fec&ando. Exemplo if ( condicao + ;
acao,(+1
acao9(+1
eleif ( condicao9 condicao + ;
acao(+1
acao3(+1
ele ;
acaopadrao(+1
(ormalmente isso é apropriado para blocos lgicos) maiores !ue cerca de 14 lin&as) mas !ual!uer cdigo !ue não se2a intuitivamente bvio pode ser comentado. Blocos de uma lin&a apenas pode omitir as c&aves para ficarem mais concisos' Exemplo if ( condicao +
acao,(+1
ele
acao9(+1
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Em am!os os lados das atri!uiç&es de operadores lógicos == 9
Em am!os os lados dos parenteses foreach ( 8foo a 8&ar + ;
'uando de(inindo ou c#amando (unç&es) entre os par*metros function minhafuncao( 8param, = 4foo4 8param9 = 4&ar4 + ; minhafuncao( 8param, outrafuncao( 8param9 + +1
ariáveis( funç)es( nomes de arquivos( e operadores
Ise letras minúsculas em nomes de variáveis e funções. ;epare as palavras por sublin&ados >underscores?. Exemplo function algum*nome( 8alguma*variavel + ; ?@
Ar!uivos devem ser nomeados descritivamente usando letras minúsculas. 7#fens devem separar as palavras. Exemplo nome-do-meu-pluginphp
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
45
*inali+ação de par,metros
+ara sinalizar parJmetros para funções prefira valores em string a apenas true e false !uando c&amar funçõesP e sempre com nomes autoeplicativos. Incorreto function comer( 8oque 8devagar = true + ; comer( 4cogumelo4 +1 comer( 4cogumelo4 true +1 // A que ignifica true' comer( 4comida de cachorro4 fale +1 // A que ignifica fale' A opoto de true'
@á !ue o +7+ não suporta argumentos em forma de nomes) os valores dos sinalizadores não tem significados e toda vez !ue aparece uma função como essa ns temos !ue pes!uisar pela definição da função. cdigo pode ficar mais leg#vel se usarmos tetos descritivos) ao invés de boleanos' Correto function comer( 8oque 8velocidade = 4devagar4 + ; comer( 4cogumelo4 +1 comer( 4cogumelo4 4devagar4 +1 comer( 4comida de cachorro4 4rapido4 +1
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
4'
%nternacionali+ação A Fnternacionalização é o processo !ue deia uma aplicação preparada para receber traduções. (o *ord+ress significa marcar os tetos padrão dos temas !ue deverão ser traduzidos de um modo especial. A internacionalização também é con&ecida como i0Hn por possuir 0H letras entre o i e o n. A tradução dos termos é feita com o uso do gettet) biblioteca !ue no +7+ 2á é permitida por padrão em suas etensõesP e o *ordpress faz uso desse artif#cio.
ArBuivos PCT gettet percorre os ar!uivos do sistema indicados pelo editor Q procura de itens previamente preparados para tradução) a!ueles onde eistir uma c&amada para a biblioteca. Ao encontrar as entradas de tradução ele etrai as informações gerando seu padrão de tradução dos ar!uivos +, eemplificado abaio' Exemplo B: 0p-content/theme/vitrine/pagephp:, mgid "%dit" mgtr "%ditar"
ArBuivos PC +ara traduzir temas) plugins e o prprio *ord+ressP cada tradutor especifica nas lin&as msgstr a tradução para o idioma pretendido. resultado dessa tradução é um ar!uivo + no mesmo formato de A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
4(
um ar!uivo +,) porém com cabeçal&os espec#ficos e obviamente as traduções editadas.
ArBuivos C Ao gerar um ar!uivo + de tradução é criado automaticamente um ar!uivo 8) do tipo binário) !ue carrega consigo todas as entradas e traduções num formato ade!uado para rápida etração das informações traduzidas.
!riando entradas +ara tornar um teto traduz#vel) adicione ele dentro das funções de tradução. As mais comumente utilizadas são' Atribuindo o valor da tradu%&o a uma variável 8texto = **(4Dy text4+1
-Dibindo o teDto diretamente em tela *e(4Dy text4+1 // %e Eltimo recuro equivalente a: echo **(4Dy text4+1
Informe os te1tos sem $so de #ara#teres espe#iais o$ a#ent$a()o para evitar erros posteriores. 3m nosso proeto $tilizarei termos em ingl*s para desenvolver o tema. 4esse modo ao final teremos o tema #ompleto em dois idiomas5
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
4
Criando um template -eb %om base nos *ireframes criados podemos enfim começar a programar nosso tema. +rimeiramente criaremos apenas um ,emplate $eb. ,emplate é o modelo a ser utilizado) seria o mesmo !ue ,ema) porém este último mais espec#fico tratando dos templates preparados para uso com o *ord+ressP en!uanto !ue o primeiro possui apenas formatações $eb sem intervenção de funções de !ual!uer %8;. %riaremos um ar!uivo inde.p&p apenas com marcações em 7,89 !ue nos permita) logo em seguida com a2uda do %;;) obter a formatação pretendida. Ao programar não se es!ueça dos padrões estudados.
Visualizaço da inde!"p#p em um na$egador %e&
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
44
indeD.php Demos a nitida separação do conteúdo em camadas) ao mel&or estilo ,ableless) cada uma com um identificador único >id? e alguns elementos acompan&ados de classes >class? para facilitar suas formatações.
stle.css estilo esplorado traz de modo compacto um reset de in#cio. Gssa simples instrução faz com !ue >de modo superficial? todos os navegadores ten&am um ponto em comum na definição de sua fol&a de estilos.
Tomaremos esses ar'$ivos #omo base para a #ontin$a()o do desenvolvimento. Para fins did%ti#os e de fi1a()o do #onte6do é altamente A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
In"cio dos tra!al#os
4#
re#omend%vel '$e vo#* peg$e os ar'$ivos e os altere en'$anto e1e#$ta a leit$ra do livro.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Parte III !onstru%&o do tema
Construção do tema
4*
s temas *ord+ress ficam alo2ados na pasta $p-contentRt&emesR) partindo da pasta de instalação do %8;. %ada tema possui ainda uma pasta dentro da pasta de temas e dentro dela todos os seus ar!uivos de imagem) estilo) funções) etc.
s temas basicamente consistem de três principais tipos de ar!uivos) além de imagens e ar!uivos @ava;cript) são eles' •
stle.css
%ontrola a apresentação >design e laout? das páginas do site. •
functions.php
Eunções opcionais •
ArBuivos do tema =.php>
%ontrolam a forma como as páginas do site gerenciam as informações do banco de dados para ser eibido no site
&stilo Além de informações de estilo %;; para o tema) stle.css fornece detal&es sobre o tema na forma de comentários. "ois temas não podem ter os mesmos dados em seus cabeçal&os. %aso isso ocorra &averá problemas ao selecionar o tema ou ativá-lo. %omo 2á temos o ar!uivo) agora incluiremos como nosso cabeçal&o algumas informações sobre o tema a ser criado' A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
cabeçal&o de lin&as de comentário no stle.css são necessários para o *ord+ress para ser capaz de identificar um tema e apresentá-lo no +ainel Administrativo acessando Aparência W ,emas. (essa página estarão dispon#veis todos os temas instalados. +ara ser mel&or visualizado na escol&a de temas) abra seu template e capture uma tela dele. %rie um ar!uivo de screens&ot.png com as dimensões 1==p de largura por <<4p de altura e salve dentro da pasta do seu tema. Eeito isso) essa imagem servirá como miniatura do seu tema e facilitará a escol&a dele !uando necessário.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Construção do tema
4,
#emplate #a$s As ,emplate tags são cdigos !ue instruem o *ord+ress para fazer determinadas ações ou pegar alguma informação. +ara !ue a integração de um simples template $eb se2a feita com o *ord+ress é necessário a utilização dessas tags. Glas vão ao banco de dados do blog e recuperam as informações personalizadas de cada página) categoria) autor e o !ue mais for re!uisitado referente ao blog em uso. 8uitas vezes nos é permitido enviar parJmetros para as tags com intuito de personalizar ainda mais a resposta !ue elas trarão. "e forma geral) são consideradas ,emplate ,ags) todas as funções !ue usaremos em nosso tema para eibir nele as informações provenientes do *ord+ressP por eemplo' bloginfo) $pMnavMmenu) t&eMsearc&M!uer) $pMgetMarc&ives.
Cabeçal"o ,rabal&ando com os ar!uivo do tema) em nosso caso o inde.p&p) começaremos a estudar suas partes. (o topo da página) separamos o espaço para nosso cabeçal&o. %ompreendemos por cabeçal&o a parte superior do site !ue vai do in#cio até a eibição do menu. cabeçal&o traz informações importantes para o servidor $eb e buscadores e também) em nosso caso) em sua parte vis#vel eibirá o nome e a descrição do blog de acordo com os valores informados pelo *ord+ress. +ara isso acontecer devemos começar a integrar nosso ar!uivo com as funções do *ord+ress. Antes mesmo da tag V&eadW incluiremos a função !ue determina o idioma a ser utilizado' A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Construção do tema
#5
index,p#p >
A função languageMattributes eibe os atributos de linguagem para a tag V&tmlWP identificando o idioma em uso e também a direção do teto para a página. Ainda dentro da tag V&eadW) adicionaremos a seguinte lin&a' index,p#p
Gla define o perfil de relacionamento !ue será respeitado) de acordo com as normas do endereço citado. atributo UrelU descreve a relação do atual documento com uma Jncora especificada pelo atributo &ref. valor desse atributo é uma lista de tipos de linNs separados por um espaço simples. *ord+ress adota o padrão :E( >:7,89 Eriends (et$orN? Kede de amigos :7,89) !ue visa representar nos linNs as relações &umanas. Leralmente o atributo é preenc&ido automaticamente pelo sistema.
%ontinuando a incluir informações relevantes dentro da tag V&eadW) nosso cabeçal&o para servidores) adicionaremos as meta tags' index,p#p <meta http-equiv="content-type" content="<'php
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Demos o uso da função bloginfo. Gla mostra informações sobre o blog) em sua maioria as !ue são definidas em pções Lerais do +ainel Administrativo do *ord+ress >%onfigurações W Leral?.
s parJmetros usados foram' •
htmlEtpe Y tipo do &tml em uso
•
charset Y codificação do teto
•
language Y idioma em uso
Itilizamos também a função $pMtitle !ue) no caso) eibirá o t#tulo da página com um separador de teto localizado a direita do t#tulo. Itilizando ainda o bloginfo) substituiremos o endereço do ar!uivo de estilo) nome) descrição e linNs para página inicial do blog fec&ando temporariamente nosso cabeçal&o'
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Construção do tema
#(
index,p#p <)!AC6NO% html OJPQLC "-//RC//!6! S6DQ ,2 Ttrict//%" "http://0000org/6K/xhtml,/!6!/xhtml,-trictdtd"> >
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Construção do tema
#
Dados não confiáveis (ote !ue imprimimos no atributo title dos dois linNs o nome e descrição do blog respectivamente. conteúdo dessas variáveis será descriminado por cada autor de blog. ;upondo !ue um autor !ual!uer defina como nome ou descrição um valor contendo aspas poderia deiar o documento inválido para as normas do *1% ou até mesmo significar um desastre para o tema. 4evemos fi#ar atento '$ando imprimimos vari%veis do WordPress #omo atrib$tos de elementos 0T!7, geralmente os erros o#orrem nos atrib$tos alt, title e val$e das tags
(esses casos utilizaremos o escMattr. A função codifica >apenas uma vez? os s#mbolos V W Z X U >sinal de menor) sinal de maior) UeU comercial) aspas duplas) aspas simples?. index,p#p
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Construção do tema
#4
Arquivo de !unç)es Im tema pode opcionalmente usar um ar!uivo de funções) !ue reside no subdiretrio do tema e é c&amado functions.p&p. Gste ar!uivo basicamente funciona como um plugin) e se ele está presente no tema !ue você está usando) ele é carregado automaticamente durante a inicialização do *ord+ress >tanto para páginas do blog e páginas de administração?. De2a algumas das principais utilizações deste ar!uivo' •
•
•
"efinir funções !ue serão utilizadas em diversos ar!uivos diferentes do seu temaP 7abilitar recursos como os menus de navegaçãoP %riar um menu de opções para o tema) dando opções para alterar cores) estilos e outros aspectosP
.enus *ord+ress incluiu um mecanismo fácil para uso de menus de navegação personalizados em um tema. recurso trata-se) como o prprio nome 2á diz) de se responsabilizar pela criação e edição de menus para as versões mais recentes do *ord+ress. +ara incorporar o suporte a menus em um tema basta incluir algumas poucas lin&as de cdigo no ar!uivo functions.p&p' (unctions,p#p regiter*nav*menu( 4main-menu4 **( 4Dain Denu4 + +1
G no ar!uivo inde.p&p substituiremos a lista de linNs por'
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
valor passado para location deverá ser o mesmo !ue o especificado anteriormente ao registrar o menu. "esse modo você está dizendo !ue a!uele menu) deverá aparecer a!ui. %ontainer null) pois por padrão) adicionaria outra div) como 2á temos uma não será preciso outra. (ão tiramos a div e a incorporamos através da função) pois) se os menus nao estiverem ativosP a formatação dos linNs ficará pre2udicada. Aps implantar esse recurso) acesse seu painel de administração do *ord+ress. %li!ue em Aparência W 8enus e gerencie seu menu como bem entender. %onstru#do o menu) ele aparecerá no local indicado.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Construção do tema
#
*idebar A barra lateral >;idebar? é uma coluna vertical pouco mais estreita !ue o espaço para o conteúdo) e geralmente rec&eado de muita informação sobre o blog. Gncontrado na maioria dos blogs *ord+ress) a barra lateral é geralmente colocada ao lado direito ou es!uerdo do conteúdo) embora em alguns casos) podemos ver duas ou mais barras laterais em diferentes posições no laout.
6avega%&o Atualmente o ob2etivo principal da barra lateral é de prestar assistência de navegação para o visitante. +ara isso são pro2etadas listas de itens para a2udar os visitantes do seu blog a encontrar determinadas informações) conteúdo. ,ais listas de navegação inclui %ategorias) +áginas) Ar!uivos) etc. utra ferramenta de navegação !ue você verá na barra lateral é um formulário de busca !ue também servirá para a2udar as pessoas a encontrarem o !ue estão procurando no seu site.
;istas aninhadas clássico de temas *ord+ress é usar listas anin&adas para apresentar informações da barra lateral. 9istas anin&adas são uma série de listas não-ordenadas) situadas uma dentro de outro. A utilização das listas anin&adas em sua barra lateral não é obrigatrio) no entanto o seu entendimento é de grande importJncia dado !ue) a maioria dos plugins e informações desenvolvidas para serem A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Construção do tema
#*
publicadas na ;idebar) fazem uso desse artif#cio.
Widgets *idgets são como plugins) mas desenvolvidos para forncer um simples modo de agrupar vários elementos no conteúdo da ;idebar sem ter !ue alterar nen&uma lin&a de cdigo para aplicá-los. Através da aba Aparência W *idgets podemos arrastá-los e trocá-los facilmente de posição no menu lateral) e como resultado customizar ainda mais o nosso tema. +ara efetivar !ual!uer edição através da aba de um $idget é preciso clicar sobre o respectivo botão salvar) caso contrário ela não será aplicada.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Construção do tema
#
Personalizando a Sidebar %omo base em todos esses con&ecimentos) vamos agora atualizar o conteúdo de nossa ;idebar. "entro do formulário de busca informe como valor do atributo action o endereço inicial do blog e o valor do campo de pes!uisa' index,p#p
(ooter,p#p
<)-- Bcontainer -->
index,p#p
<)-- Bcontent -->
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Estrutura do tema
*'
%ncludes #a$s As include tags são usadas nos modelos para eecutar 7,89 e +7+ !ue se encontram em outros ar!uivos modelo. +7+ possui as instruções include e re!uire para esse fim) no entanto para ar!uivos espec#ficos do tema é aconsel&ável o uso das Fncludes ,ags em razão da facilidade e padronização do cdigo. Gm nosso ar!uivo inde.p&p incuiremos as c&amadas getM&eader) getMsidebar e getMfooter' index,p#p <'php get*header(+1 '>
G no ar!uivo sidebar.p&p incluiremos getMsearc&Mform' side!ar,p#p
<'php get*earch*form(+1 '>
Ao abrirmos novamente o nosso blog) constataremos !ue os demais ar!uivos foram c&amados nos respectivos espaços. %aso algum modelo não se2a encontrado) em seu lugar será inclu#do o ar!uivo &omTnimo da pasta $p-includesRt&eme-compat e !uando esse não eistir) no caso do formulário de busca) será automaticamente gerado. A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Estrutura do tema
*(
%ncluindo arquivos Agora !ue sabemos o !uão fácil pode ser nosso trabal&o reaproveitando UpedaçosU do nosso tema) vamos etender essa prática para !ual!uer ar!uivo +7+. +ara isso devemos ter um ar!uivo com as instrções dese2adas denominado slug.p&p 2unto com os demais ar!uivos do tema. +ara incluir as referidas instruções em um outro ar!uivo basta informar' Exemplo <'php get*template*part( 8lug +1 '>
%riaremos para esse passo um ar!uivo dizendo !ue a informação procurada não eiste) ou se2a) o usuário fez uma consulta !ue não teve resultados e precisamos informá-lo disso. Assim sendo edite' index,p#p // u&titua
<'php *e(4Torry the content not found)4+1'>
// por <'php get*template*part( 4no-reult4 +1 '>
%riaremos um ar!uivo c&amado no-results.p&p e nele colocaremos a informação !ue dese2amos eibir) copie a lin&a substitu#da dentro desse ar!uivo. A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Estrutura do tema
*
"a mesma forma faremos com o conteúdo dos posts. %riaremos um ar!uivo c&amado loop.p&p e nele colocaremos todas as instruções do 9oop !ue estavam no inde.p&p. +or outro lado) nesse último ar!uivo) substituiremos as instruções por sua c&amada. De2a como ficou o inde.p&p final' index,p#p <'php get*header(+1 '>
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Estrutura do tema
*4
*in$le3p"p Fremos agora preparar o ar!uivo !ue receberá os posts !uando visualizados separadamente e também poderá trabal&ar com os comentários) item de muit#ssima importJncia para !ual!uer blog. %opie o ar!uivo loop.p&p e renomeie para single.p&p e inclua os ar!uivos de cabeçal&o) sidebar e rodapé nos respectivos lugares. (ão se es!ueça da div de conteúdo !ue foi deiada no inde.p&p. "entro da div entr-meta) logo aps eibir o nome do autor) incluiremos um linN !ue nos levará até os comentários utilizando a função commentsMpopupMlinN. single,p#p <'php comment*popup*lin5( **( 4Qeave a comment4 + **( 4, Comment4 + **( 4V Comment4 + 4comment4 **( 4Comment are cloe4 + +1 '>
+or fim ao final da div com classe post) incluiremos a função commentsMtemplate. single,p#p
+ronto) seu sistema de comentários está ativo e pronto para ser usado) no entanto algumas alterações no %;; serão necessárias para deiar a listagem e o formulário mais bem apresentáveis.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Estrutura do tema
*#
st+le,css commentlit ; margin: ,2px 2 2px 21 commentlit li ; lit-tyle: enhum1 commentlit li ul ; margin-left: 92px1 commentlit li comment-&ody ; &ac5ground: Beee1 padding: ,2px1 margin-&ottom: ,2px1 commentlit img ; float: left1 margin: px1 commentlit p ; clear: &oth1 margin: ,px 21 color: B1 reply ; text-align: right1 Bcommentform ; margin-top: ,px1 Bcommentform p ; margin-&ottom: Xpx1
)istagem dos coment*rios do tema Aprendiz
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Parte 8 Aprimoramentos
%primoramentos
**
;abemos !ue nosso tema suporta eibir mais de um post na inde. número de posts a serem eibidos por página é configuravel pelo painel em %onfigurações W 9eitura. (o entanto !uando a !uantidade de posts eistentes no blog ultrapassar esse número em nosso tema atual) não ter#amos condições de ver os posts mais antigos. +ara resolver a situação criaremos uma paginação para !ue nosso tema nao deie de eibir nen&um post) por mais antigo !ue ele se2a. (o ar!uivo loop.p&p aps o final do 9oop incluiremos' loop,p#p
+ara mel&or eibir em tela) no stle.css tambem incluiremos' st+le,css /G avega#$o G/ Bnavigation a ; &ac5ground: Bc991 color: Beee1 padding: 3px1 Bnavigation a:hover ; &ac5ground: BfcX1 color: B1
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
%primoramentos
*
/esumo (o entanto muitas vezes ao eibir a listagem dos posts o visitante não clica para ver o post separadamente pois 2á o leu por completo. Ima ecelente prática muito utilizada é a de eibir apenas os resumos nas paginações e apenas no single.p&p eibir o restante do post. +ara isso no loop.p&p loop.p&p ao inves de informar informar t&eMcontent) t&eMcontent) responsável por eibir o conteúdo) informe t&eMecerpt. loop,p#p
<'php the*excerpt(+1 '>
(essas circunstJncias) circunstJncias) caso o campo resumo foi preenc&ido durante a edição do post ele será eibido) senão um número limitado de palavras do teto original serão epostos seguido de um continuador de teto \...]
*earc" Ainda tratando de paginação de posts) criaremos agora o ar!uivo searc&.p&p !ue será eibido !uando uma busca for eecutada. %opie o ar!uivo inde.p&p e renomeie para searc&.p&p
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
Conditional #a$s As tags condicionais podem ser usadas em seus modelos para mudar o conteúdo e como ele é eibido em uma certa página dependendo em !uais condições a página se encontra. Fsto é) fazemos a verificação se a página acessada é determinada página) e de acordo com a resposta obtida realizaremos ou não certas instruções. As tags verificam se uma determinada condição é satisfeita) e em seguida) retorna verdadeiro ou falso. Algumas das tags condicionais geralmente usadas são' isMsingle) isM&ome e isMpage !ue verificam se a página atual é a de posts) inicial ou uma página respectivamente.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
5
Arc"ive Apurando os dados da mesma maneira) trataremos das buscas !uando efetuadas por tag) categoria) autor ou data. +ara isso) copie o ar!uivo recém modificado searc&.p&p e renomeie para arc&ive.p&p. (o local de eibição do t#tulo) faça' arc#ive,p#p
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
(
Posts e pá$inas +osts são como not#cias !ue você escreve com um certa periodicidade e são mostrados no blog em ordem cronolgica reversa) ou se2a) os mais novos antes dos mais antigos. As páginas por sua vez contém uma informação estática sem relevJncia com a data na !ual foi criada) mas sim pelo seu conteúdo em si !ue geralmente trata !uestões sobre o site ou seus mantenedores. "evido a essa clara discrepJncia de dinJmica e relevJncia baseada na data de sua publicação atribu#da a páginas e posts) apenas esses últimos são incorporados no feed. Gm uma eplanação simblica seria como se o blog se mantivesse dentro de uma lin&a do tempo determinada pelos posts e as página coeistiriam do lado de fora dessa lin&a. +ara fins de organização do conteúdo as páginas podem possuir uma &ierar!uia entre si !uando marcado suas respectivas páginas pai >ou mãe? e ordem na caia ^Atributos de página_ da tela de edição. +or outro lado os posts possuem um sistema mais compleo utilizando-se de tags e categorias.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
.odelos de Pá$inas *ord+ress pode ser configurado para usar diferentes modelos de página para páginas diferentes. +ara alternar o modelo de página) en!uanto edita uma página !ual!uer pelo painel de administração) selecione o modelo na lista c&amada 8odelo. ar!uivo padrão !ue eibirá o conteúdo das páginas é a page.p&p.
!riando um novo modelo de página s ar!uivos de modelo da página deverão estar na pasta do seu tema. Docê poderá criar um ar!uivo com !ual!uer nome) eceto os nomes reservados do *ord+ress como no caso do &eader) footer) sidebar e afins. +ara criar um modelo basta inserir no cabeçal&o da página a instrução' Exemplo /G 6emplate ame: ome do modelo G/
As etapas a seguir serão feitas para criarmos um modelo de eibição das nossas páginas' •
•
%opie a single.p&p e renomeie para page.p&p Apague a div de classe post-utilit) pois páginas não tem categoria nem tags.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
4
Pá$inas adicionais %riaremos agora dois modelos de páginaP um sem os comentários e outro sem a ;idebar.
Sem comentários •
•
%opie o ar!uivo page.p&p e renomeie para page-norepl.p&pP +ara deiar a página sem comentários apague a lin&a com a instrução V/p&p commentsMtemplate>?P /W.
Sem Sidebar •
•
•
•
%opie o recém criado ar!uivo page-norepl.p&p e o renomeie para page-nosidebar.p&pP +ara deiar a página sem ;idebar apague o getMsidebar>?P (a div do conteúdo >id`XcontentX? tro!ue o identificador para content-fullP Gdite o %;;. st+le,css
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
#
Pá$ina 454 +or vezes é comum acontecer de você apagar alguns posts ou o visitante digita um endereço inválido para teu blog e uma página de erro aparece. (a atual situação do nosso tema) a mensagem !ue é eibida é a contida no ar!uivo no-results.p&p.
P*gina de erro do T%itter
(o entanto) tal ar!uivo e mensagem referem-se a ausência de conteúdo e não a ineistência dele) isto é) o endereço eiste) porém não tem informações a serem eibidasP en!uanto !ue para erros do tipo 3=3 o endereço é inválido) não eiste. •
%opie o ar!uivo inde.p&p
•
Kenomeie para 3=3.p&p
•
Apague a instrução V/p&p getMtemplateMpart>UloopU?P /W e no local informe sua mensagem de erro' -.-,p#p
<'php *e( 4%rror 323) Lnvalid JKQ4 +1 '>
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
Classes do #ema Fmplementando as seguintes funções de classes para 7,89) o *ord+ress gera automaticamente atributos de classe para bod) post e elementos dos comentários. +ara classes de posts) funciona apenas dentro do 9oop.
#eader,p#p <&ody <'php &ody*cla(+1 '>>
loop,p#p) single,p#p) page,p#p) ,,,
>
"essa forma você poderá customizar o %;; como bem entender e mel&or aproveitar) por eemplo) para determinar titulos de uma categoria na cor verde basta incluir na fol&a de estilo' Exemplo category-lug-da-categoria h, ; color: B2c21
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
*
6avascript Ima forma segura de acrescentar cdigos 2avascripts a um tema *ord+ress é registrando-os inicialmente via página de funções do tema) e posteriormente incluindo as c&amadas para os registros onde necessário) em geral no &eader.p&p. Gsse processo apenas inclue o script se ele 2á não ten&a sido inclu#do) e também é capaz de carregar scripts embutidos do *ord+ress) como faremos com o 2uer no &eader.p&p' #eader,p#p 0p*enqueue*cript("Wquery"+1
Kepare !ue o script foi adicionado com sucesso por fazer parte da biblioteca de scripts do *ord+ress como mencionado. Além desse) incluiremos também um script responsável por permitir enviar uma resposta aos comentários sem a necessidade de recarregar a página. Earemos isso da seguinte forma logo abaio da inserção da 2uer'
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
2egistrando scripts 8uitas vezes precisamos incorporar cdigos 2avascript ao tema criado para termos uma maior interação com o visitante e os elementos 7,89 do laout. Damos incluir um script utiizando o modo seguro do *ord+ress. +ara isso faça o registro dentro do ar!uivo de funções do tema' (unctions,p#p 0p*regiter*cript( 4validator4 get*&loginfo( 4template*directory4+ 4/W/validatorW4 array( 4Wquery4 + 4,24 +1
(ote !ue especificamos como terceiro parJmetro) a obrigatoriedade do script 2uer ser carregado antes do nosso. Fsso por!uê iremos fazer uso da biblioteca e se ea não estiver presente) nosso cdigo não funcionará.
Galida%&o do formulário script proposto irá fazer a validação do formulário de comentários) antes dele ser enviado. +erceba !ue foi criado uma pasta dentro da pasta do tema com o nome 2s) e dentro dela incluimos o ar!uivo validator.2s
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
,
2 obetivo do tpi#o é il$strar o modo de inserir s#ripts em se$ tema, por isso o #digo do ar'$ivo validator.s n)o ser% p$bli#ado. Para obt*&lo abra a pasta aprendiz/s do ar'$ivo ane1o a este #ap9t$lo.
script verificador é muito interessante de ser utilizado pois reduz ainda mais o número de spams nos seus comentários. Ealta agora incluir o script ao tema. mel&or local para tal tarefa é dentro do ar!uivo do cabeçal&o. %omo a verificação somente será usada se o formulário de comentários estiver sendo eibido e &ouver a possibilidade de respostaP fizemos uma pe!uena verificação para saber se a página re!uisitada atende aos re!uisitos. #eader,p#p if ( i*ingular(+ get*option( 4thread*comment4 + +; 0p*enqueue*cript( 4comment-reply4 +1 0p*enqueue*cript( 4validator4 +1
+ara tornar a eibição do erro mais c&amativa iremos incluir algumas informações em nossa fol&a de estilos. st+le,css error ; font-0eight: &old1 color: Bc991
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
,5
!ol"a de estilos resultado final da formatação de um tema *ord+ress depende muito das fol&as de estilo %;;. %om o uso delas você tem em suas mãos muitas opções de configurar um laout da maneira mais conveniente. 8esmo criando tudo do zero é preciso fazer uso) ou então padronizar) algumas formatações !ue são inerentes ao *ord+ress e seu funcionamento.
!lasses do WordPress *ord+ress incui automaticamente várias classes para as imagens e os elementos de bloco visando padronizar funções básicas) como por eemplo o alin&amento de imagens dentro dos posts através das classes alignleft) aligncenter) alignrig&t e alignnone. (o caso das imagens) além da !uestão do alin&amento) elas ainda necessitam de formatação para suas respectivas legendas. Derifi!ue as classes para tal formatação' st+le,css aligncenter divaligncenter ; diplay: &loc51 margin: 2 auto1 alignleft ; float: left1 alignright ; float: right1 /G . intru#Ze a&aixo $o para formatar a legenda G/ 0p-caption ; 0p-caption img ; 0p-caption p0p-caption-text ;
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
,'
2egistrando estilos "a mesma forma !ue registramos e utilizamos nossos scripts) podemos também incluir novos ar!uivos %;; ao nosso tema) além do stle.css. Leralmente iremos adotar essa prática !uando o ar!uivo de estilo principal estiver muito etenso e precisemos divid#-los em partes menores para mel&orar o entendimento do mesmo. u então !uando dese2amos criar estilos adicionais ao 2á eistente. (unctions,p#p 0p*regiter*tyle( 4cutom4 get*&loginfo( 4template*directory4+ 4/c/cutomc4 +1
custom,css Bmenu ; &ac5ground: BXXX1 color: B1 Bmenu ul li a ; color: Bfff1 Bmenu ul li a:hover ; color: Bff21
"entro do nosso cabeçal&o c&amarei o ar!uivo apenas !uando for eibida uma página de busca. +ara surtir efeito é preciso ainda !ue a declaração este2a sendo eibida aps a inserção do estilo principal. #eader,p#p if ( i*earch(+ + 0p*enqueue*tyle( 4cutom4 +1
Apesar do nome dado ao identifi#ador do estilo ser o mesmo '$e o do ar'$ivo, essa n)o é $ma regra a ser seg$ida. 2 termo '$e ir% ser re#$perado ser% o do identifi#ador. A pr%ti#a foi adotada por evitar #onf$ses desne#ess%rias de nomen#lat$ra. 2 mesmo alerta vale também para os s#ripts.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
,(
#radução "urante todo o desenvolvimento estivemos preparando nosso tema para tradução incluindo os termos a serem utilizados nas funções de internacionalização do +7+ e *ord+ress. Agora iremos traduzir os termos com a a2uda de um soft$are livre c&amado +oGdit.
Po-dit +oedit é um editor de ar!uivos .po de modo visual) com recursos !ue facilitam o manuseio e aplicação das traduções dos tetos. +ara iniciar um processo de tradução eecute o soft$are e siga as etapas' •
•
•
•
•
%li!ue em UAr!uivoU e logo aps U(ovo catálogo...UP (a tela a seguir informe os dados do pro2eto com o !ual está trabal&ando) para tabela de caracteres escol&a utf-HP (a aba U%amin&osU) insira o camin&o base para seu temaP ou se2aP o fluo de pastas !ue o sistema deverá percorrer até encontrar os ar!uivos a serem traduzidosP Fnsira o camin&o na listagem eibida abaio do campo camin&o base >G.' %'$amp$$$$ordpress$p-contentt&emesaprendiz?P (a aba U+alavras-c&aveU deverão ser inseridas as funções de tradução !ue estamos incluindo aos ar!uivos desde o in#cio do desenvolvimento do tema >G.' MM) Me) Mn?P
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
•
•
,
Ao final cli!ue em para confirmar suas açõesP Eeito isso cli!ue agora em %atálogo W Atualizar a partir do cdigo fonteU >ou no terceiro #cone) com o globo desen&ado? para o +oGdit capturar todas as entradas dos ar!uivos eistentes no endereço informado e mostrá-las em tela.
Traduzindo %licando sobre determinado teto) embaio aparecerão dois campos de teto' o primeiro deles com o teto original e o segundo) editável) aguarda o teto traduzido. Apertando Alt % !uando escol&er determinado termo) este é repetido para a tradução. %aso eista dúvida !uanto a tradução de uma certa palavra) aperte Alt I para marcá-la ou desmarcála como incerta dependendo de sua atual situação. Kealizada a tradução de todos os termos) no ar!uivo de funções functions.p&p inclua' (unctions,p#p load*theme*textdomain( 4!efault4 6%DOQ.6%O.6S4/lang4 +1
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%primoramentos
,4
PoEdit com todos os termos traduzidos
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Consideraç&es /inais
,#
!onsidera%es 0inais +arabéns Agora você 2á está apto a entrar de vez no universo de desenvolvimento do *ord+ress. %om os conceitos a!ui vistos você con&eceu a ferramenta) todo seu funcionamento de forma geral e 2á tornou-se capaz de produzir seu prprio material com base em um template $eb. Docê perceberá !ue também acabou de aprender a lidar mais facilmente com eventuais atualizações) temas) plugins e reparos ao seu sistema !uando for necessário. Ao continuar trabal&ando com o *ord+ress você verá ainda o !uão fácil é implementar recursos !ue possuem enormes atrativos visuais e funcionais ao teu trabal&o sem complicações) em poucas lin&as de cdigo) baseado nas informações contidas nesse livro. +ara facilitar sua busca por informações !uando utilizar o livro como referência) a seguir temos uma listagem com as funções utilizadas no tema. ,odas elas bem eplicadas e detal&adas com suas respectivas descrições) modo de uso) parJmetros e valores retornados.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
Ap1ndice A: 2efer1ncia de fun%es
%p0ndice %1 2e(er0ncia de (unç&es
77 )escri%&o
Im alias para translate. Ketorna a string traduzida para o termo passado como parJmetro. Hso **( 8text 8domain +
ParImetros 8text (tring+ (o&rigatório+
,eto a ser traduzido +adrão' (en&um 8domain (tring+ (opcional+
"om#nio de onde o teto traduzido será recuperado +adrão' U"efaultU 2etorna
>string? ,eto ,eto traduzido
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
,*
%p0ndice %1 2e(er0ncia de (unç&es
7e )escri%&o
Gibe a string traduzida para o termo passado como parJmetro. Hso *e( 8text 8domain +
ParImetros 8text (tring+ (o&rigatório+
,eto a ser traduzido +adrão' (en&um 8domain (tring+ (opcional+
"om#nio de onde o teto traduzido será recuperado +adrão' U"efaultU 2etorna
(ada
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
,
%p0ndice %1 2e(er0ncia de (unç&es
,,
blo$info )escri%&o
8ostra informações sobre o blog) em sua maioria as !ue são definidas nas pções Lerais do +ainel Administrativo do *ord+ress. Hso &loginfo( 8option +
ParImetros 8option (tring+ (Apcional+
+alavra-c&ave !ue referencia a informação !ue se dese2a obter. +adrão' name 9ista de opções' name) description) adminMemail) url) $purl) stles&eetMdirector) stles&eetMurl) templateMdirector) templateMurl) atomMurl) rss
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
bod87class )escri%&o
Keúne e eibe classes para o elemento bod Hso &ody*cla( 8cla +
ParImetros 8cla (tring+ (opcional+
Ima ou mais classes para adicionar a lista de classes +adrão' (ada 2etorna
>string? 9ista de classes para o elemento bod
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'55
%p0ndice %1 2e(er0ncia de (unç&es
comments7popup7lin2 )escri%&o
Gibe um linN para uma 2anela popup ou um linN normal para comentários. Hso comment*popup*lin5( 8Hero 8one 8more 8c*cla 8none +1
,eto mostrado !uando &á um único comentário +adrão' U0 %ommentU. 8more (tring+ (opcional+
,eto mostrado !uando &á mais de um comentário. s#mbolo U[U é substituido pelo número de comentários +adrão' U[ %ommentsU. 8c*cla (tring+ (opcional+
%lasse %;; para o linN +adrão' (en&um 8none (tring+ (opcional+
,eto mostrado !uando comentários estão desabilitados. +adrão' U%omments ffU. 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'5'
%p0ndice %1 2e(er0ncia de (unç&es
comments7template )escri%&o
%arrega o modelo de comentários padrão do *ord+ress Hso comment*template( 8file 8eparate*comment +
ParImetros 8file (tring+ (opcional+
ar!uivo a ser carregado +adrão' Rcomments.p&p 8eparate*comment (&oolean+ (opcional+
Fnforma se os comentários deverão ser separados por tipo +adrão' false 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'5(
%p0ndice %1 2e(er0ncia de (unç&es
d8namic7sidebar )escri%&o
Fmprime o conteúdo de cada um dos *idget ativos Hso dynamic*ide&ar( 8index +
ParImetros 8index (integerUtring+ (opcional+
(ome ou F" da ;idebar +adrão' 0 2etorna
>boolean? Derdadeiro se encontrou algum *idget e falso para o contrário.
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'5
%p0ndice %1 2e(er0ncia de (unç&es
'54
esc7attr )escri%&o
%odifica V W Z X U >sinal de menor) sinal de maior) UeU comercial) aspas duplas) aspas simples? Hso ec*attr( 8texto +
ParImetros 8texto (tring+ (o&rigatório+
teto a ser codificado +adrão' (en&um 2etorna
>string? teto codificado com entidades 7,89
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
$et7aut"or7posts7url )escri%&o
Ketorna o permalinN do autor com base no identificador passado Hso get*author*pot*url( 8id +
ParImetros 8id (integer+ (o&rigatório+
F" do usuário !ue dese2a se obter o linN +adrão' (en&um 2etorna
>string? IK9 para a página de posts do referido usuário
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'5#
%p0ndice %1 2e(er0ncia de (unç&es
$et7da87lin2 )escri%&o
Ketorna a IK9 de ar!uivo de um dia espec#fico Hso get*day*lin5( 8year 8month 8day +
ParImetros 8year (&ooleanUinteger+ (opcional+
ano. Fnforme UU para o ano atual. +adrão' (en&um 8month (&ooleanUinteger+ (opcional+
mês. Fnforme UU para o mês atual. +adrão' (en&um 8day (&ooleanUinteger+ (opcional+
dia. Fnforme UU para o dia atual. +adrão' (en&um 2etorna
>string? Gndereço do linN do dia
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'5
%p0ndice %1 2e(er0ncia de (unç&es
$et7footer )escri%&o
Fnclui o ar!uivo footer.p&p do tema atual Hso get*footer( 8name +
ParImetros 8name (tring+ (opcional+
Gecuta a c&amada para footer-name.p&p. +adrão' (en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'5*
%p0ndice %1 2e(er0ncia de (unç&es
$et7"eader )escri%&o
Fnclui o ar!uivo &eader.p&p do tema atual Hso get*header( 8name +
ParImetros 8name (tring+ (opcional+
Gecuta a c&amada para &eader-name.p&p. +adrão' (en&um 2etorna
(ada
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
'5
%p0ndice %1 2e(er0ncia de (unç&es
$et7mont"7lin2 )escri%&o
Ketorna a IK9 de ar!uivo de um mês espec#fico Hso get*month*lin5( 8year 8month +
ParImetros 8year (&ooleanUinteger+ (opcional+
ano. Fnforme UU para o ano atual. +adrão' (en&um 8month (&ooleanUinteger+ (opcional+
mês. Fnforme UU para o mês atual. +adrão' (en&um 2etorna
>string? Gndereço do linN do mês
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
'5,
%p0ndice %1 2e(er0ncia de (unç&es
''5
$et7option )escri%&o
Ima maneira segura de se obter valores para uma opção recuperada do banco de dados. Hso get*option( 8ho0 8default +
ParImetros 8ho0 (tring+ (o&rigatório+
(ome da opção a ser recuperada +adrão' (en&um 8default (mixed+ (opcional+
valor padrão é retornado se a função não retorna nen&um valor +adrão' false 2etorna
>mied? valor da opção re!uisitada
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
'''
$et7searc"7form )escri%&o
8ostra o formulário de busca com base no ar!uivo searc&form.p&p se esse eistir. Hso
getMsearc&Mform>? ParImetros
(en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
''(
$et7searc"7quer8 )escri%&o
Ketorna o termo de pes!uisa para a re!uisição atual) se uma busca foi eecutada Hso get*earch*form(+
ParImetros
(en&um 2etorna
>string? ,ermo pes!uisado
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
termo slug do ar!uivo a ser incu#do +adrão' (en&um 8name (tring+ (opcional+
nome de um ar!uivo espec#fico +adrão' (en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
''4
%p0ndice %1 2e(er0ncia de (unç&es
$et7t"e7aut"or )escri%&o
Kecupera o autor do post Hso get*the*author(+
ParImetros
(en&um 2etorna
>string? nome de eibição do autor do post
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
''#
%p0ndice %1 2e(er0ncia de (unç&es
$et7t"e7aut"or7meta )escri%&o
Kecupera uma meta-informação do autor do post Hso get*the*author*meta( 8meta +
ParImetros 8meta (tring+ (o&rigatório+
Fdentifica !ua informação do autor se dese2a obter +adrão' (en&um 2etorna
>string? 8eta-informação do autor do post
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
''
%p0ndice %1 2e(er0ncia de (unç&es
''*
$et7t"e7cate$or8 )escri%&o
Ketorna um arra de ob2etos) sendo cada um deles) uma categoria a !ual o post está incluso. Hso get*the*category( 8id +
ParImetros 8id (integer+ (o&rigatório+
identificador do post. +adrão' post-WF" >o F" do post atual? 2etorna
>arra? As categorias do post
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
''
$et7t"e7cate$or87list )escri%&o
Ketorna uma string contendo todas as categorias do post em forma de linNs Hso get*the*category*lit( 8ep +
ParImetros 8ep (tring+ (o&rigatório+
;eparador !ue será inclu#do entre os linNs +adrão' 9ista não ordenada) VulWVliW 2etorna
>string? 9inNs 7,89 prontos para eibição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
'',
$et7t"e7date )escri%&o
Ketorna a data em !ue o post foi escrito respeitando o formato passado como parJmetro Hso get*the*date( 8d +
ParImetros 8d (tring+ (opcional+
Eormato de data +adrão' formato de data escol&ido via painel administrativo >UEormato das datasU em %onfigurações W Leral? 2etorna
>string? "ata formatada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
'(5
$et7t"e7ta$7list )escri%&o
Lera um 7,89 contendo as tags associadas ao post atual) onde cada tag está linNada a respectiva página. Hso get*the*tag*lit( 8&efore 8ep 8after +
ParImetros 8&efore (tring+ (opcional+
,eto a ser inserido antes da string de retorno +adrão' U,ags' U 8ep (tring+ (opcional+
;eparador !ue será inclu#do entre os linNs +adrão' U) U 8after (tring+ (opcional+
,eto a ser inserido ao final da string de retorno +adrão' (en&um 2etorna
>string? 9inNs 7,89 prontos para eibição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
$et7t"e7ta$s )escri%&o
Ketorna um arra de ob2etos) sendo cada um deles) uma tag a !ual pertence ao post Hso get*the*tag(+
ParImetros
(en&um 2etorna
>arra? As tags do post
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'('
%p0ndice %1 2e(er0ncia de (unç&es
'((
$et7userdata )escri%&o
Ketorna um ob2eto com as informações referentes ao usuário cu2o F" é passado para ele Hso get*uerdata( 8id +
ParImetros 8id (integer+ (o&rigatório+
Fdentificador do usuário !ue se dese2a obter informações +adrão' (en&um 2etorna
>ob2ect? Fnformações vinculadas ao usuário
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
$et78ear7lin2 )escri%&o
Ketorna a IK9 de ar!uivo de um ano espec#fico Hso get*year*lin5( 8year +
ParImetros 8year (&ooleanUinteger+ (opcional+
ano. Fnforme UU para o ano atual. +adrão' (en&um 2etorna
>string? Gndereço do linN do ano
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'(
%p0ndice %1 2e(er0ncia de (unç&es
"ave7posts )escri%&o
Derifica a eistência de posts para a atual consulta Hso have*pot(+
ParImetros
(en&um 2etorna
>boolean? %aso a consulta ten&a resultado retorna verdadeiro) do contrário) falso
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'(4
%p0ndice %1 2e(er0ncia de (unç&es
is7aut"or )escri%&o
Derifica se uma página de ar!uivo de Autor está sendo eibida Hso i*author( 8author +
ParImetros 8author (integerUtring+ (opcional+
F" ou apelido do autor +adrão' (en&um 2etorna
>Boolean? Derdadeiro ou falso para a condição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'(#
%p0ndice %1 2e(er0ncia de (unç&es
is7cate$or8 )escri%&o
Derifica se uma página de ar!uivo de %ategoria está sendo eibida Hso i*category( 8category +
ParImetros 8category (integerUtring+ (opcional+
F") t#tulo ou slug da categoria +adrão' (en&um 2etorna
>Boolean? Derdadeiro ou falso para a condição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'(
%p0ndice %1 2e(er0ncia de (unç&es
is7da8 )escri%&o
Derifica se uma página de ar!uivo de "ia está sendo eibida Hso i*day(+
ParImetros
(en&um 2etorna
>Boolean? Derdadeiro ou falso para a condição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'(*
%p0ndice %1 2e(er0ncia de (unç&es
is7"ome )escri%&o
Derifica se a página inicial está sendo eibida Hso i*home(+
ParImetros
(en&um 2etorna
>Boolean? Derdadeiro ou falso para a condição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'(
%p0ndice %1 2e(er0ncia de (unç&es
is7mont" )escri%&o
Derifica se uma página de ar!uivo de 8ês está sendo eibida Hso i*month(+
ParImetros
(en&um 2etorna
>Boolean? Derdadeiro ou falso para a condição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'(,
%p0ndice %1 2e(er0ncia de (unç&es
is7pa$e )escri%&o
Derifica se uma página está sendo eibida Hso i*page( 8page +
ParImetros 8page (integerUtring+ (opcional+
F") t#tulo ou slug da página +adrão' (en&um 2etorna
>Boolean? Derdadeiro ou falso para a condição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'5
%p0ndice %1 2e(er0ncia de (unç&es
is7sin$le )escri%&o
Derifica se uma página de post está sendo eibida Hso i*ingle( 8pot +
ParImetros 8pot (integerUtring+ (opcional+
F") t#tulo ou slug do post +adrão' (en&um 2etorna
>Boolean? Derdadeiro ou falso para a condição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
''
%p0ndice %1 2e(er0ncia de (unç&es
is7ta$ )escri%&o
Derifica se uma página de ar!uivo de ,ag está sendo eibida Hso i*tag( 8tag +
ParImetros 8tag (integerUtring+ (opcional+
F") t#tulo ou slug da tag +adrão' (en&um 2etorna
>Boolean? Derdadeiro ou falso para a condição
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'(
%p0ndice %1 2e(er0ncia de (unç&es
is78ear )escri%&o
Derifica se uma página de ar!uivo de Ano está sendo eibida Hso i*year(+
ParImetros
(en&um 2etorna
>Boolean? Derdadeiro ou falso para a condição
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
'
%p0ndice %1 2e(er0ncia de (unç&es
'4
lan$ua$e7attributes )escri%&o
Gibe os atributos de linguagem para a tag V&tmlW. Fdentifica o idioma em uso e também a direção do teto para a página. Hso language*attri&ute( language*attri&ute ( 8doctype +
ParImetros 8doctype (tring+ (opcional+
tipo &tml do documento U&tmlU ou U&tmlU. +adrão' U&tmlU 2etorna
(ada
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
load7t"eme7te9tdomain )escri%&o
%arrega as strings traduzidas do tema Hso load*theme*textdomain( load*theme*textdoma in( 8domain 8path +
ParImetros 8domain (tring+ (o&rigatório+
Fdentificador único para recuperar as strings traduzidas +adrão' (en&um 8path (tring+ (opcional+
%amin&o dos ar!uivos de tradução +adrão' +asta do tema ativo 2etorna
(ada
A p r e n d a a d e s e n v o l v e r Te m a s Wo r d P r e s s – h t t p : / / m a z e t t o . b l o g . b r
'#
%p0ndice %1 2e(er0ncia de (unç&es
'
ne9t7posts7lin2 )escri%&o
Fmprime um linN para o primo con2unto de posts dentro da consulta atual Hso next*pot*lin5( 8la&el 8max*page +
ParImetros 8la&el (tring+ (opcional+
,eto do linN +adrão' U(et +age U 8max*page (integer+ (opcional+
9imita o número de página nas !uais o linN é eibido +adrão' = Y ;em limite 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
post7class )escri%&o
Keúne e eibe classes para o elemento div do post Hso pot*cla( 8cla +
ParImetros 8cla (tring+ (opcional+
Ima ou mais classes para adicionar a lista de classes +adrão' (en&um 2etorna
>string? 9ista de classes
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'*
%p0ndice %1 2e(er0ncia de (unç&es
'
previous7posts7lin2 )escri%&o
Fmprime um linN para o con2unto de posts anterior dentro da consulta atual Hso previou*pot*lin5( 8la&el 8max*page +
ParImetros 8la&el (tring+ (opcional+
,eto do linN +adrão' UVV +revious +ageU 8max*page (integer+ (opcional+
9imita o número de página nas !uais o linN é eibido +adrão' = Y ;em limite 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
re$ister7nav7menu )escri%&o
Kegistra um único 8enu de navegação personalizado Hso regiter*nav*menu( 8location 8decription +
ParImetros 8location (tring+ (o&rigatório+
Fdentificador de localização do menu) como um slug. +adrão' (en&um 8decription (tring+ (o&rigatório+
(ão possui valor como padrão. "everá ser especificado mesmo se vazio. ;ervirá para rotular o menu criado. +adrão' (en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
',
%p0ndice %1 2e(er0ncia de (unç&es
sin$le7ta$7title )escri%&o
8ostra ou retorna o t#tulo da tag da página atual Hso ingle*tag*title( 8prefix 8diplay +
ParImetros 8prefix (tring+ (opcional+
,eto a ser retornado antes do t#tulo +adrão' (en&um 8diplay (&oolean+ (opcional+
8ostra ou retorna o t#tulo da tag se verdadeiro ou falso +adrão' true 2etorna
>nullstring? (ada ou t#tulo da tag
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'45
%p0ndice %1 2e(er0ncia de (unç&es
sin$le7cat7title )escri%&o
8ostra ou retorna o t#tulo da categoria da página atual Hso ingle*cat*title( 8prefix 8diplay +
ParImetros 8prefix (tring+ (opcional+
,eto a ser retornado antes do t#tulo +adrão' (en&um 8diplay (&oolean+ (opcional+
8ostra ou retorna o t#tulo da tag se verdadeiro ou falso +adrão' true 2etorna
>nullstring? (ada ou t#tulo da tag
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'4'
%p0ndice %1 2e(er0ncia de (unç&es
'4(
re$ister7sidebar )escri%&o
%onstri a definição para uma única ;idebar Hso regiter*ide&ar( 8arg +
ParImetros 8arg (tringUarray+ (opcional+
%onstri a ;idebar baseado nos valores de UnameU e UidU. +adrão' (en&um 9ista de parJmetros' name) id) description) beforeM$idget) afterM$idget) beforeMtitle) afterMtitle 2etorna
>integerstring? Fdentificador da ;idebar
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
t"e7aut"or )escri%&o
8ostra o nome de eibição do autor do post Hso the*author(+
ParImetros
(en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'4
%p0ndice %1 2e(er0ncia de (unç&es
t"e7date )escri%&o
Gibe a data de publicação do post Hso the*date( 8format 8&efore 8after 8echo +
ParImetros 8format (tring+ (opcional+
Eormato da data +adrão' E 2) h 8&efore (tring+ (opcional+
,eto a ser eibido antes da data +adrão' (en&um 8after (tring+ (opcional+
,eto a ser eibido depois da data +adrão' (en&um 8echo (&oolean+ (opcional+
Gibe a data !uando verdadeiro ou retorna !uando falso. +adrão' true 2etorna
>nullstring? (ada ou a data formatada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'44
%p0ndice %1 2e(er0ncia de (unç&es
t"e7e9cerpt )escri%&o
8ostra o resumo do post Hso the*excerpt(+
ParImetros
(en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'4#
%p0ndice %1 2e(er0ncia de (unç&es
t"e7permalin2 )escri%&o
Gibe o linN do post de acordo com as configurações de linNs permanente do painel administrativo Hso the*permalin5(+
ParImetros
(en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'4
%p0ndice %1 2e(er0ncia de (unç&es
t"e7post )escri%&o
Eaz um post obtido através da iteração do 9oop tornar-se global Hso the*pot(+
ParImetros
(en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'4*
%p0ndice %1 2e(er0ncia de (unç&es
'4
t"e7searc"7quer8 )escri%&o
Gibe o termo de pes!uisa para a re!uisição atual) se uma busca foi eecutada Hso the*earch*form(+
ParImetros
(en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
'4,
t"e7title )escri%&o
Gibe o t#tulo do post Hso the*title( 8&efore 8after 8echo +
ParImetros 8&efore (tring+ (opcional+
,eto a ser eibido antes do t#tulo +adrão' UU 8after (tring+ (opcional+
,eto a ser eibido depois do t#tuo +adrão' UU 8echo (&oolean+ (opcional+
Gibe o t#tulo !uando verdadeiro ou retorna !uando falso. +adrão' true 2etorna
>nullstring? (ada ou o t#tulo de acordo com o valor passado para ec&o
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
'#5
-p7enqueue7script )escri%&o
Im modo seguro de se adicionar scripts nas páginas do tema Hso 0p*enqueue*cript( 8handle 8rc 8dep 8ver 8in*footer +
ParImetros 8handle (tring+ (o&rigatório+
(ome do script) como um slug. +adrão' (en&um 8rc (tring+ (opcional+
IK9 do script +adrão' (en&um 8dep (array+ (opcional+
9ista de scripts !ue devem ser carregados antes do script principal) pelo fato desse último depender do outro. +adrão' arra>? 8ver (tring+ (opcional+
Gspecifica !ual a versão do script +adrão' false 8in*footer (&oolean+ (opcional+
(ormalmente os scripts são colocados na seção V&eadW. ;e este parJmetro for verdadeiro) o script é colocado na parte inferior do VbodW +adrão' false 2etorna
(ada A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
'#'
-p7enqueue7st8le )escri%&o
Im modo seguro de se adicionar estilos nas páginas do tema Hso 0p*enqueue*tyle( 8handle 8rc 8dep 8ver 8media +
ParImetros 8handle (tring+ (o&rigatório+
(ome do estilo) como um slug. +adrão' (en&um 8rc (tring+ (opcional+
%amin&o para o ar!uivo do estilo +adrão' (en&um 8dep (array+ (opcional+
9ista de estilos !ue devem ser carregados antes do estilo principal +adrão' arra>? 8ver (tring+ (opcional+
Gspecifica !ual a versão do estilo +adrão' false 8media (tring+ (opcional+
Gspecifica os meios para o !ual o estilo foi definido) como UallU) UscreenU) U&and&eldU e Uprint +adrão' false 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
-p7footer )escri%&o
7ooN de identificação do rodapé Hso
$pMfooter>? ParImetros
(en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'#(
%p0ndice %1 2e(er0ncia de (unç&es
'#
-p7$et7arc"ives )escri%&o
Gibe uma lista de ar!uivos baseada pela data. Hso
$pMgetMarc&ives> args ? ParImetros type (tring+ (opcional+
tipo de lista de ar!uivo a ser mostrada. +adrão' mont&l Dalores válidos' earl) mont&l) dail) $eeNl) postbpost >posts ordenados por data de postagem?) alp&a >posts ordenados pelo t#tulo? limit (integer+ (opcional+
(úmero máimo de ar!uivos a se obter +adrão' = format (tring+ (opcional+
Eormato para a lista de ar!uivo. Dalores válidos' &tml Y Gm listas 7,89 >VliW? - +adrão option Y Gm um menu de seleção ou de opções linN Y "entro das tags VlinNW custom Y 9ista personalizada usando strings para antes e depois de cada linN •
•
•
•
&efore (tring+ (opcional+
,eto a ser eibido antes do linN !uando a opção format estiver definida como custom +adrão' (en&um after (tring+ (opcional+
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
,eto a ser eibido depois do linN !uando a opção format estiver definida como custom +adrão' (en&um ho0*pot*count (&oolean+ (opcional+
Gibe ou não a !uantidade de posts !ue o ar!uivo possui +adrão' Ealse echo (&oolean+ (opcional+
Gibe ou retorna a lista !uando true e false respectivamente +adrão' true 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'#4
%p0ndice %1 2e(er0ncia de (unç&es
-p7"ead )escri%&o
7ooN de identificação do cabeçal&o Hso 0p*head(+
ParImetros
(en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'##
%p0ndice %1 2e(er0ncia de (unç&es
'#
-p7nav7menu )escri%&o
Gibe um menu de navegação criado através do painel adminisrtativo Hso 0p*nav*menu( 8arg +
ParImetros 8menu (tring+ (opcional+
menu dese2adoP aceita id) slug) name +adrão' (en&um 8container (tring+ (opcional+
,ag de blog onde o menu será inserido +adrão' div 8container*cla (tring+ (opcional+
A classe a ser aplicada ao container +adrão' menu-menu slugj-container 8container*id (tring+ (opcional+
identificador a ser aplicado ao container +adrão' (en&um 8menu*cla (tring+ (opcional+
A classe %;; da tag ul !ue compõe o menu +adrão' menu
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
%p0ndice %1 2e(er0ncia de (unç&es
'#*
8menu*id (tring+ (opcional+
identificador da tag ul !ue compõe o menu +adrão' menu slug) incrementado 8echo (&oolean+ (opcional+
"etermina se o menu será eibido ou retornado !uando verdadeiro ou falso) respectivamente +adrão' true 8fall&ac5*c& (tring+ (opcional+
;e o menu não eistir) eecuta a função a!ui epl#cita +adrão' $pMpageMmenu 8&efore (tring+ (opcional+
,eto eibido antes da tag VaW do linN +adrão' (en&um 8after (tring+ (opcional+
,eto eibido depois da tag VaW do linN +adrão' (en&um 8lin5*&efore (tring+ (opcional+
,eto eibido antes do teto do linN +adrão' (en&um 8lin5*after (tring+ (opcional+
,eto eibido depois do teto do linN +adrão' (en&um 8depth (integer+ (opcional+
uantos n#veis de &ierar!uia serão inclu#dos +adrão' = - ,odos
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
A localização do tema a ser utilizada. "eve ser registrado com registerMnavMmenu >?) a fim de ser selecionável pelo usuário +adrão' (en&um 2etorna
>boolean? Derdadeiro ou falso se encontrou ou não um menu personalizado
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r
'#
%p0ndice %1 2e(er0ncia de (unç&es
'#,
-p7title )escri%&o
Gibe o teto do t#tulo de acordo com a consulta !ue está sendo eecutada' •
•
•
•
+ost ou página - ,#tulo do post ou página Ar!uivo de datas - A prpria data %ategorias - nome da categoria +ágina do autor - nome do autor do post
Hso 0p*title( 8ep 8echo 8eplocation +
ParImetros 8ep (tring+ (opcional+
,eto a ser eibido antes ou depois do t#tulo +adrão' Zra!uoP >? 8echo (&oolean+ (opcional+
Gibe o t#tulo !uando verdadeiro ou retorna !uando falso. +adrão' true 8eplocation (tring+ (opcional+
"efine a localização do teto separador do t#tulo. ual!uer valor eibirá o separador a es!uerda do t#tulo) eceto pelo termo Urig&tU !ue eibe o separadr a direita do t#tulo. +adrão' (en&um 2etorna
(ada
A p re n d a a d es en vo l v e r Te m a s Wo r dP res s – h t t p : / / m a ze tt o . bl o g . b r