Você está na página 1de 160

Aprenda a desenvolver

Temas WordPress
Guilherme Mazetto
www.guiawp.com.br
Prefcio
A internet lugar de todos. Boa parte dos usurios de internet
utilizam-se dos blogs como meio de comunicao e referncia para buscar
informaes !teis aos seus cotidianos. A "ontade de se e#pressar e e#por
pontos de "ista no mundo digital to grande $ue o n!mero de produtores
de conte!do cresce a cada dia.
%eparado com tal situao poss&"el "er a necessidade desses
produtores em entender o funcionamento da publicao de material para
'eb. (om intuito de agilizar esse trabalho surgem os sistemas
gerenciadores de conte!do) interfaces altamente simplificadas e auto-
e#plicati"as capazes de realizar funes anteriormente conseguidas
apenas com um bom conhecimento tcnico.
*o cenrio e#istente+ o ,ord-ress destaca-se como o mais popular
entre os sistemas gerenciadores por possuir uma forte comunidade
colaborati"a+ interface amig"el+ ele"ado n!mero de funcionalidades e
di"ersas razes mais.
.amanha popularidade agra"a o problema da personalizao dos
trabalhos+ onde muitos possuem o sistema e compartilham dos mesmos
recursos e elementos "isuais a serem e#ibidos aos "isitantes.
/ trabalho proposto tratar fundamentalmente de torn-lo capaz de
desen"ol"er suas pr0prias solues para e#posio de conte!dos
mostrando um modo inteligente de integrar o desen"ol"imento 'eb padro
ao sistema do ,ord-ress de modo a apro"eitar bem os seus recursos.
Sumrio 4
Sumrio
Prefcio......................................................................................................3
Sumrio......................................................................................................4
Contedo....................................................................................................
!ntrodu"#o................................................................................................$%
&esenvolvimento Web.............................................................................$'
!n(cio dos trabal)os.................................................................................%*
Constru"#o do tema................................................................................4'
+strutura do tema....................................................................................,'
Aprimoramentos......................................................................................''
Considera"-es .inais..............................................................................*,
Ap/ndice A0 1efer/ncia de fun"-es.......................................................*'
Ap/ndice 20 .un"-es utili3adas...........................................................$,$
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Contedo
Contedo
Prefcio......................................................................................................3
Sumrio......................................................................................................4
Contedo....................................................................................................
!ntrodu"#o................................................................................................$%
-ara $uem feito o li"ro1.....................................................................23
-ro4eto...................................................................................................25
%idtica.................................................................................................25
*otificaes......................................................................................26
Alerta...........................................................................................26
*otas adicionais...........................................................................26
Ane#os.........................................................................................26
A4uda................................................................................................27
&esenvolvimento Web.............................................................................$'
(onceitos bsicos.................................................................................28
,3( e -adres 'eb.........................................................................28
9.M:................................................................................................28
;9.M:.............................................................................................28
(<<..................................................................................................=>
:inguagens de *a"egadores ?Bro'ser <cripting@.............................=>
:inguagem de <er"idores ?<er"er <cripting@....................................=>
Banco de %ados...............................................................................=2
-9-..................................................................................................=2
ABuerC..............................................................................................==
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Contedo ,
.ableless...........................................................................................==
MC<B:.............................................................................................==
(M<.................................................................................................==
,ordpress.............................................................................................=3
-lugins..............................................................................................=6
.emas...............................................................................................=7
-or$u desen"ol"er um tema ,ord-ress1...........................................=D
!n(cio dos trabal)os.................................................................................%*
,ireframe.............................................................................................3=
-adro de codificao ,ord-ress........................................................35
9.M:................................................................................................35
Ealidao.....................................................................................35
Fechamento de .ags....................................................................35
Atributos e tags............................................................................36
Aspas...........................................................................................36
Gndentao...................................................................................37
-9-..................................................................................................3D
Aspas simples e duplas...............................................................3D
Gndentao...................................................................................3D
Hstilo das (ha"es........................................................................3I
Jso de espaos...........................................................................38
Eari"eis+ funes+ nomes de ar$ui"os+ e operadores ................38
<inalizao de parKmetros...........................................................5>
Gnternacionalizao...............................................................................52
Ar$ui"os -/....................................................................................52
Ar$ui"os -/.....................................................................................52
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Contedo '
Ar$ui"os M/.....................................................................................5=
(riando entradas..............................................................................5=
(riando um template 'eb.....................................................................55
inde#.php..........................................................................................56
stCle.css............................................................................................56
Constru"#o do tema................................................................................4,
Hstilo.....................................................................................................5D
.emplate .ags.......................................................................................58
(abealho.............................................................................................58
%ados no confi"eis............................................................................63
Ar$ui"o de Funes..............................................................................65
Menus...................................................................................................65
<idebar..................................................................................................67
*a"egao.......................................................................................67
:istas aninhadas...............................................................................67
,idgets............................................................................................6D
-ersonalizando a <idebar.................................................................6I
Lodap.................................................................................................7>
.rabalhando o conte!do........................................................................72
:oop.................................................................................................72
.he e GetMthe...................................................................................7=
-lugin A-G 9ooNs..................................................................................75
Actions..............................................................................................75
Filters................................................................................................75
+strutura do tema....................................................................................,,
9ierar$uia.............................................................................................7D
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Contedo 4
Ar$ui"os Modelos..................................................................................78
Gncludes .ags........................................................................................D2
Gncluindo ar$ui"os.................................................................................D=
<ingle.php.............................................................................................D5
Aprimoramentos......................................................................................',
Lesumo.................................................................................................DI
<earch...................................................................................................DI
(onditional .ags....................................................................................D8
Archi"e..................................................................................................I>
-osts e pginas.....................................................................................I=
Modelos de -ginas..............................................................................I3
(riando um no"o modelo de pgina.................................................I3
-ginas adicionais................................................................................I5
<em comentrios..............................................................................I5
<em <idebar.....................................................................................I5
-gina 5>5............................................................................................I6
(lasses do .ema...................................................................................I7
Aa"ascript..............................................................................................ID
Legistrando scripts...........................................................................II
Ealidao do formulrio....................................................................II
Folha de estilos.....................................................................................8>
(lasses do ,ord-ress.....................................................................8>
Legistrando estilos...........................................................................82
.raduo...............................................................................................8=
-oHdit...............................................................................................8=
.raduzindo........................................................................................83
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Contedo *
Considera"-es .inais..............................................................................*
Ap/ndice A0 1efer/ncia de fun"-es.......................................................*,
MM..........................................................................................................8D
Me..........................................................................................................8I
bloginfo.................................................................................................88
bodCMclass..........................................................................................2>>
commentsMpopupMlinN........................................................................2>2
commentsMtemplate............................................................................2>=
dCnamicMsidebar.................................................................................2>3
escMattr...............................................................................................2>5
getMauthorMpostsMurl...........................................................................2>6
getMdaCMlinN........................................................................................2>7
getMfooter............................................................................................2>D
getMheader..........................................................................................2>I
getMmonthMlinN....................................................................................2>8
getMoption............................................................................................22>
getMsearchMform..................................................................................222
getMsearchM$uerC................................................................................22=
getMsidebar..........................................................................................223
getMtemplateMpart................................................................................225
getMtheMauthor....................................................................................226
getMtheMauthorMmeta..........................................................................227
getMtheMcategorC.................................................................................22D
getMtheMcategorCMlist..........................................................................22I
getMtheMdate.......................................................................................228
getMtheMtagMlist...................................................................................2=>
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Contedo $5
getMtheMtags.......................................................................................2=2
getMuserdata.......................................................................................2==
getMCearMlinN.......................................................................................2=3
ha"eMposts..........................................................................................2=5
isMauthor.............................................................................................2=6
isMcategorC..........................................................................................2=7
isMdaC..................................................................................................2=D
isMhome..............................................................................................2=I
isMmonth.............................................................................................2=8
isMpage...............................................................................................23>
isMsingle..............................................................................................232
isMtag..................................................................................................23=
isMCear................................................................................................233
languageMattributes.............................................................................235
loadMthemeMte#tdomain......................................................................236
ne#tMpostsMlinN...................................................................................237
postMclass...........................................................................................23D
pre"iousMpostsMlinN.............................................................................23I
registerMna"Mmenu..............................................................................238
singleMtagMtitle....................................................................................25>
singleMcatMtitle....................................................................................252
registerMsidebar..................................................................................25=
theMauthor...........................................................................................253
theMdate..............................................................................................255
theMe#cerpt.........................................................................................256
theMpermalinN......................................................................................257
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Contedo $$
theMpost..............................................................................................25D
theMsearchM$uerC...............................................................................25I
theMtitle...............................................................................................258
'pMen$ueueMscript.............................................................................26>
'pMen$ueueMstCle..............................................................................262
'pMfooter............................................................................................26=
'pMgetMarchi"es.................................................................................263
'pMhead.............................................................................................266
'pMna"Mmenu.....................................................................................267
'pMtitle................................................................................................268
Ap/ndice 20 .un"-es utili3adas...........................................................$,5
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Introduo $%
!ntrodu"#o
/ li"ro aborda os conceitos essenciais para desen"ol"imento de um
laCout e integrao do mesmo com o ,ord-ress. Jma se$Oncia l0gica foi
criada com o intuito de facilitar o entendimento do mesmoP atribuindo+
apresentando e e#plicando no"os conceitos Q medida em $ue sero
empregados no processo de desen"ol"imento do tema. .al processo ser
tratado no decorrer de 6 principais partes+ so elas)
&esenvolvimento Web
Jma bre"e apresentao de conceitos $ue de"em ser de
conhecimento do leitor antes de $ual$uer ati"idade relacionada ao
desen"ol"imento propriamente dito. / aprendizado do funcionamento das
$uestes tratadas implica numa melhor assimilao do restante do
material.
!n(cio dos trabal)os
Htapas iniciais de criao de um template 'eb. <o apresentados os
padres estabelecidos pelo ,ord-ress em sua programao e a
capacidade de um .ema tornar-se internacional com suporte a m!ltiplos
idiomas.
Constru"#o do Tema
A integrao do template criado com ,ord-ress tem seu in&cio. /
modo como o modelo tratado no sistema e a criao de ar$ui"os padro
podem ser "istos em amplo funcionamento.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Introduo $3
+strutura do Tema
/ tema em construo passa por modificaes estruturais. *o"os
ar$ui"os so criados. (onhea as tcnicas de reutilizao de modelos em
diferentes ar$ui"os do .emas.
Aprimoramentos
<o e#postas muitas funcionalidades $ue permitem tornar um tema
$ual$uer em outro mais sofisticado com mais recursos e interati"idade com
o "isitante e as pginas $ue esse "isita.
Para quem feito o livro?
-ara desen"ol"er as ati"idades propostas recomendado $ue "oc
tenha um bre"e conhecimento de 9.M:+ (<< e -9-. Hssas noes
bsicas facilitaro e muito o entendimento dos c0digos $ue sero e#ibidos.
Alguns conceitos das linguagens citadas+ como a correta marcao
de tags+ laos de repetio+ declarao de "ari"eis+ seletores e outrosP
sero citados+ porm superficialmente. A razo disso o nosso pr0posito)
criao de .emas ,ord-ress e no o de aprendizado de uma linguagem
espec&fica.
/ aprendizado constante+ relacionado a ele estar a $ualidade de
seu trabalho. -ara obter melhores resultados+ no dei#e de pes$uisar os
itens mencionados e sempre prati$ue os conceitos e#plorados fazendo
seus pr0prios .emas ,ord-ress.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Introduo $4
Projeto
%urante os cap&tulos desse li"ro iremos desen"ol"er um .ema
,ord-ress na &ntegra. Alm do .ema finalizado+ ao trmino do li"ro "oc
estar apto a desen"ol"er suas pr0prias criaes uma "ez $ue os
conceitos estaro bem sedimentados.
Eoc entender como o funcionamento do ,ord-ress como um
todo e com relao a interpretao e e#ibio do tema criado. <aber o
significado dos termos tcnicos e estar capacitado a entender e utilizar-se
de outros e no"os recursos da ferramenta.
Didtica
%esen"ol"eremos nosso tema passo a passo+ entendendo e
colocando em prtica algumas das principais funes do ,ord-ress. A
apresentao das funes ser feita gradati"amente com as etapas a
serem desen"ol"idas. Hlas surgiro a"ulsas em meio as e#plicaes+
$uando aplicadas ao tema. -ara uma descrio mais detalhada consulte o
apndice de funes.
A melhor maneira de se aprender a fazer algo fazendo. -or isso
muito importante $ue ao ler esse li"ro+ "oc " reproduzindo as etapas ao
mesmo passo em $ue e"olui as pginas. A cada funo apresentada+
colo$ue-a em prtica em seu tema pr0prio. (aso "oc tenha dificuldades
para iniciar a criao de algo+ utilize os ar$ui"os da produo do li"ro.
(omece do princ&pio e no pule etapas+ isso ser fundamental para um
melhor pro"eito do material $ue est lendo.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Introduo $
6otifica"-es
Hm determinados pontos do li"ro ser preciso incluir determinadas
informaes para $u o estudo se4a mais dinKmico e acrescente conte!do
rele"ante ao $ue est em pauta. A maneira encontrada para atingir esse
ob4eti"o foi criar notificaes $ue enfatizam o $u est sendo "isto. Ee4a
$uais so as notificaes e suas respecti"as funes dentro do li"ro)
Alerta
Eoc de"e dar ateno para determinados pontos do te#to.
Leeitera informaes e dei#a claro circunstKncias onde no
podem ha"er d!"idas.
Notas adicionais
<o e#plicaes adicionais ao assunto $ue no
necessariamente se en$uadram no te#to+ mas de importante
conhecimento.
Anexos
Ao final de cada cap&tulo ha"er a referncia para o do'nload
dos ar$ui"os criados durante o mesmo.
Abai#o est um e#emplo de como os c0digos sero e#ibidos dentro
do li"ro. *o topo estar o nome do ar$ui"o onde o c0digo est inserido ou
a$uilo $ue ele representa.
Exemplo de cdigo Nome do arquivo
// Cdigo Fonte do arquivo
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Introduo $,
A7uda
(aso "oc tenha d!"ida com o uso do ,ord-ress+ instalao de
temas+ manuseio de ar$ui"os+ gerenciamento de informao dentro do
(M< no formato de usurio da ferramenta e no do desen"ol"edor+ acesse
'''.guia'p.com.br.
*o blog "oc encontrar tudo isso+ informaes atualizadas e muito
mais sobre ,ord-ress. (aso tenha interesse fi$ue Q "ontade tambm para
e#pressar sua opinio utilizando a ferramenta de comentrios ou ento o
formulrio de contato.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Parte I
&esenvolvimento Web
Desenvolvimento e! $4
%esen"ol"er material de $ualidade para 'eb pode se tornar uma
tarefa fcil desde $ue "oc domine o espao $ue pretende adentrar. / 'eb
design e#iste como uma e#tenso do design+ cu4a finalidade 4ustamente
a criao de elementos $ue possam trazer melhores resultados ao material
publicado na internet.
-ara o processo de criao ser bem realizado preciso ter em mente
$ue muitos fatores con"ergem para a produo de um material de
$ualidade. Hntre eles destacam-se a usabilidade+ acessibilidade e a
ar$uitetura da informao diretamente relacionadas ao 'eb design
transmitindo informaes !teis sobre diagramao+ laCout e disposio dos
diferentes componentes em tela.
.endo em mos um briefing bem elaborado+ abordando as principais
$uestes referentes ao conte!do do pro4eto+ necessrio definir seus
ob4eti"os+ p!blico al"o+ ser"ios e produtos e#plorados+ diferenciais de
mercado e todas as caracter&sticas $ue possam determinar o melhor modo
de e#por tudo em tela.
Jm conceito importante a ser e#plorado o de usabilidade. Hla
define a e#perincia do "isitante no site tornando sua e#perincia
prazerosa ou um tormento como resultado de informaes confusas e de
becos sem sa&das. Jma boa usabilidade mostra ao usurio onde ele est+
$uais opes tem de proseguir+ como encontrar as informaes $ue
procura+ alm de propiciar uma interface amig"el a ele onde todos
elementos dispostos em tela de"em e#istir mediante um ob4eti"o.
<abendo seus ob4eti"os+ traando metas+ aplicando bem o laCout ao
seu pro4etoP respeitando as funes dos elementosP 4 traz ao site uma boa
aspirao profissional.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! $*
Conceitos bsicos
W3C e Padr-es web
A ,3( ?,orld ,ide ,eb (onsortium@ o 0rgo respons"el por
recomendar padres de desen"ol"imento para a internet. -or meio destes
padres se pode classificar) 'eb sites de acordo com suas caracter&sticas
tcnicas+ indo alm do "isual eP na"egadores+ de acordo com sua
capacidade em atender aos padres definidos.
/ grande ob4eti"o de seguir os padres do ,3( de possibilitar $ue
a informao "eiculada pelo site permanea independente do dispositi"o
utilizado pelo "isitante e $ue se4a acess&"el.
8T9:
A :inguagem de Marcao de 9iperte#to ?9.M: - 9Cper.e#t MarNup
:anguage@ uma linguagem de marcao utilizada para produzir pginas
na ,eb $ue so interpretadas pelos na"egadores. /s documentos em
9.M: so ar$ui"os de te#to simples $ue podem ser criados e editados em
$ual$uer editor de te#tos comum+ como o Bloco de *otas do ,indo's.
;8T9:
A ;9.M: ?H#tensible 9Cperte#t MarNup :anguage@ atualmente a
base do %esen"ol"imento ,eb. Hla a estrutura de toda a informao $ue
apresentada na Gnternet+ como imagens+ te#tos+ formulrios+ linNs e muito
mais.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! %5
CSS
A ;9.M: depende+ em essncia+ da (<< ?(ascading <tCle <heets@
para formatar a estrutura do seus c0digos nos *a"egadores de Gnternet. R
uma linguagem de formatao simples e poderosa. (om ela "oc pode+
praticamente+ formar $ual$uer tipo de laCout+ de maneira muito mais clara
e eficiente+ se comparada com a antiga formatao inclu&da em c0digos
9.M:. A (<< anda lado a lado com a ;9.M:.
:inguagens de 6avegadores <2rowser Scripting=
As :inguagens de *a"egadores so c0digos de programao
inseridos no c0digo ;9.M: com a finalidade de incrementar as suas
funcionalidades+ como inserir data e hora atual+ "alidar formulrios+
retornar "alores matemticos e muito mais. Hsses c0digos so
interpretados pelos *a"egadores de Gnternet ?Bro'sers@ no momento em
$ue as pginas so carregadas ?por isso possuem esse nome@.
As principais :inguagens de *a"egadores utilizadas so o Aa"a<cript
e o Eb<cript+ mas o Aa"a<cript de longe a mais utilizada e aceita pelos
na"egadores.
:inguagem de Servidores <Server Scripting=
As :inguagens de <er"idores tal"ez se4am os artif&cios mais
poderosos da Gnternet. / acesso e a manipulao de dados armazenados
em Bancos de %ados so uns dos seus principais recursos+ e so
amplamente utilizados na Gnternet.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! %$
Ao contrrio do $ue acontece nas :inguagens de *a"egadores+ as
:inguagens de <er"idor so processadas nos ser"idores onde esto
armazenadas as pginas+ mesmo possuindo+ algumas "ezes+ a codificao
na pr0pria pgina.
H#istem "rias :inguagens de <er"idores dispon&"eis atualmente.
Hntre as mais populares esto) A<-+ A<-.*H.+ A<- e -9-. .odas possuem
suas "antagens e des"antagens+ mas no geral elas realizam as mesmas
tarefas.
2anco de &ados
-ara os %esen"ol"edores $ue utilizam :inguagens de <er"idor de
suma importKncia conhecer os conceitos de Bancos de %ados Lelacionais
e algum <istema de Gerenciamento de Banco de %ados ?<GB%@. /s
Bancos de %ados so utilizados de di"ersas maneiras na Gnternet+ como
armazenar informaes sobre produtos de sites de (omrcio HletrSnico+
manter cadastro de clientes e um infinidade de outras aplicaes.
P8P
-9-+ $ue significa -9-) 9Cperte#t -reprocessor+ uma linguagem
de programao de ampla utilizao+ interpretada+ $ue especialmente
interessante para desen"ol"imento para a ,eb e pode ser mesclada
dentro do c0digo 9.M:. A sinta#e da linguagem lembra (+ Aa"a e -erl+ e
fcil de aprender. / ob4eti"o principal da linguagem permitir a
desen"ol"edores escre"erem pginas $ue sero geradas dinamicamente
rapidamente+ mas "oc pode fazer muito mais do $ue isso com -9-.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! %%
>?uer@
ABuerC uma biblioteca Aa"a<cript $ue pode ser utilizada e
modificada sem $ual$uer custo. A4uda os desen"ol"edores a se
concentrarem na l0gica dos sistemas da 'eb e no nos problemas de
incompatibilidade dos na"egadores.
Tableless
Jma forma de desen"ol"imento de sites+ sugerida pela ,3(+ $ue
no utiliza tabelas para disposio de conte!do na pgina+ pois defende
$ue os c0digos 9.M: de"em ser usados para o prop0sito $ue foram
criados+ sendo $ue tabelas foram criadas para e#ibir dados tabulares.
9@S?:
R um banco de dados relacional $ue est entre os mais utilizados no
mundo. Hle gratuito ?open source@ e permite a "oc armazenar+
organizar e ler dados de uma maneira muito rpida e eficiente.
C9S
<istema de Gerenciamento de (onte!do ?em ingls (ontent
Management <Cstems@. <istema gestor de 'ebsites+ portais e intranets
$ue integra ferramentas necessrias para criar e gerenciar conte!dos em
tempo real+ sem a necessidade de programao de c0digo.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! %3
Wordpress
Hm sua essncia ele um (M<+ gerenciador de conte!dosP "oltado
especialmente para blogs. Hntretanto e#perincias di"ersas de seus
usurios tem mostrado ele com o potencial para gerir portais e sistemas de
diferentes tipos e tamanhos.
/ ,ord-ress surgiu em =>>3 com um simples c0digo para melhorar
a tipografia de escre"er todos os dias e com poucos usurios. Atualmente
utilizado e "isto em milhes de sites pelo mundo todo. -rogramado em
-9- e base de dados em MC<B:P o sistema agrada tambm os
programadores $ue conseguem dar maior fle#ibilidade Q ele e criar
e#tenses+ plugins e temas.
Site do WordPress
/ sistema tem como grande diferencial e tal"ez a resposta para seu
rpido crescimento de atuao na internet+ o fato do sistema ser c0digo
aberto e tambm possuir interface altamente amig"el e personaliz"el ao
usurio.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! %4
-ara realizar o do'nload do ,ord-ress acesse '''.'ordpress.org.
Hsse o site dos desen"ol"edores do sistema+ onde encontram-se
dispon&"eis tambm plugins e temas $ue "oc poder manuse-los como
bem entender.
WordPress.org o site dos desenvolvedores do WordPress, onde
podemos fazer o download do C! bem como de seus plugins e
manuse"#los como bem entender.
WordPress.com o site $ue oferece gratuitamente o servi%o de
&ospedagem para o WordPress.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! %
Plugins
/s plugins so funcionalidades $ue os programadores desen"ol"em
com as rotinas e#istentes do ,ord-ress ?ou no@ e o fazem para obter
melhor resposta para diferentes ob4eti"os+ se4a e#ibir not&cias reacionadas+
ou uma galeria de imagens personalizada.
/s plugins so os maiores colaboradores da$ueles $ue entendem
pouco de programao+ pois fazem tudo o $ue prope bastando ao usurio
mo"-los para o diret0rio de plugins de seu blog. Muitas "ezes possuem
pginas administrati"as $ue facilitam ainda mais o trabalho do usurio.
(omo o ,ord-ress pro4etado para ser le"e+ ma#imizar a
fle#ibilidade e minimizar o ac!mulo de c0digoP os -lugins e#istem para
oferecer funes personalizadas para $ue cada usurio possa personalizar
seu site segundo suas necessidades espec&ficas.
'ntre os plugins mais con&ecidos est" o A(ismet $ue verifica a
presen%a de spams em meio aos coment"rios do blog, muito
utilizado e vem como padr)o do WordPress.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! %,
Temas
/ ,ord-ress possui uma distinta separao entre o conte!do
gerenci"el de um blog nele criado com a sua respecti"a formatao e
e#ibio em tela. / banco de dados MC<B: armazena todas as
informaes passadas ao sistema+ este por sua "ez possui uma srie de
funcionalidades $ue permitem a criao de diferentes modelos de e#ibio+
os temas+ para o usurio final.
Motion, um dos muitos temas populares do WordPress
Jm tema 4ustamente a parte "isual do seu blog+ como ele ser
apresentado para seu "isitante. Hle carrega consigo os elementos "isuais
$ue compe as formataes de pginas e uma srie de funcionalidades
herdadas do ,ord-ress alm de abrir espao ao desen"ol"edor de
implantar as suas pr0prias.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! %'
-ossui uma coleo de ar$ui"os $ue trabalha em con4unto para
produzir uma interface grfica !nica de um blog. Modifica a forma como o
site e#ibido+ sem modificar no entanto+ o ,ord-ress onde est sendo
e#ecutado. /s temas podem incluir ar$ui"os de imagem+ folhas de estilos+
scripts+ bem como $uais$uer ar$ui"os de c0digo necessrio.
Porqu desenvolver um tema WordPress?
-ara criar um "isual !nico para o seu siteP
Aperfeioar temas+ funes e recursos e#istentes do ,ord-ress
obtendo melhores resultadosP
(riar modelos alternati"os de pginas com caracter&sticas
espec&ficas destinadas unicamente a cada tema desen"ol"idoP
/portunidade para aprender mais sobre desen"ol"imento 'eb e
aumentar sua e#perincia no ramoP
Hstimula a criati"idadeP
Leceba cr&ticas de seu trabalho ap0s compartilhar o tema criado.
As cr&ticas podero lhe a4udar a aperfeioar suas tcnicasP
(omercializao dos temas criados.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Desenvolvimento e! %4
Tema Escritrio Digital
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Parte II
!n(cio dos trabal)os
In"cio dos tra!al#os 35
Ao desen"ol"er um tema de suma importKncia tomar alguns
cuidados para otimiz-lo e dei#-lo mais fle#&"el para futuras e e"entuais
alteraes. R preciso ter em mente $ue o tema en"ol"e somente a
estrutura do site e no as informaes nele contidas. Assim sendo todo o
material $ue for inclu&do diretamente atra"s do tema de"e ser rele"ante a
ele e tambm $ue ser"ir em todas as suas aplicaes.
(omo 4 foi dito anteriormente+ no desen"ol"imento de sites para
'eb+ muitos conhecimentos so colocados em prtica. R preciso ter em
mente $ue para se ter um bom resutado final+ de"e ser conhecido
e#atamente o $u dese4amos ter como resultado final de nossa aplicaoP
at por razes comparati"as. Gsso $uer dizer $ue no se pode
simplesmente comear logo de cara digitando linhas de c0digo $ue no se
sabe onde te le"aro.
Hm primeiro lugar necessrio plane4ar o trabalho a ser e#ecutado.
.rabalhe bem a idia do Brainstorm. *ela "oc e todos a$ueles en"ol"idos
na tarefa de desen"ol"er o tema de"ero e#pressar todas as suas idias
por mais surreias $ue se4am+ sendo poss&"eis ou no de se fazerP com
intuito de se ter um grande "olume de informaes com as $uais trabalhar.
*essa etapa faa $uestionamentos como)
Bual assunto ser trabalhado1
Bual tipo de informao ser "eiculada1
(omo a informao ser tratada ?pginas+ not&cias+ linNs@1
Buais sees o site de"er possuir1
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 3$
Hnfim+ $uestes $ue possam te dar uma idia de como poder ser o
seu resultado final. Faa algumas pes$uisas na pr0rpria 'eb com intuito de
obter referncias para seu trabalho. Muito material de $ualidade pode ser
encontrado+ at mesmo de forma gratuita.
Tome cuidado e n)o confunda tomar um trabal&o de outra pessoa
como refer*ncia+ com pl"gio, c,pia n)o autorizada. Ter um tema
como refer*ncia acess"#lo e estudar o posicionamento dos
componentes, estilos empregados, &armonia do design+ para
posteriormente em sua cria%)o, trabal&ar com algum-s. desses
elementos sem $ue necessariamente seu resultado final se/a
semel&ante ao modelo fonte.
-ara ilustrar esse conceito+ defini como resultado de um Brainstorm+
as seguintes condies para nosso tema)
Jm blog ser desen"ol"ido
Jma paginao de not&cias ser necessria
-ginas de buscas
-ginas personalizadas
%e"er e#ibir nome e descrio do blog
*ecessariamente e#istir um menu de pginas
Hspao para conte!do interati"o+ especificado por $uem mais for
utilizar o tema
(rditos
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 3%
Wireframe
%efinimos nosso conte!do e todo o material a ser e#plorado dentro
do nosso site+ precisamos agora criar um esboo do nosso trabalho.
Faremos ento uma pr"ia+ sem programar ainda+ $ue nos possibilite
"isualizar como ser o tema para os "isitantes do blog. -ara isso criaremos
um ,ireframe.
/ ,ireframe um desenho bsico+ como um es$ueleto+ $ue
demonstra de forma direta a ar$uitetura de como o laCout ser de acordo
com as especificaes determinadasP seu ob4eti"o au#iliar o
entendimento dos re$uisitos $ue foram escolhidos com relao as funes
e ob4etos $ue o sistema de"er possuir.
A criao de um 'ireframe pode ser feita manualmente com
materiais de escrit0rio como lpis+ caneta+ borracha e folhas sulfite. %esse
modo "oc consegue alm de plane4ar o futuro laCout do blog+ economizar
tempo no processo. /u ento "oc pode utilizar algum editor de imagens
?"etoriais preferencialmente@ com o $ual tenha intimidade com o manuseio
e obter e#celentes resultados+ de melhor $ualidade+ com a mesma
economia de tempo in"estido.
Importante ressaltar $ue o resultado final do trabal&o a ser
desenvolvido independe da ferramente utilizada.
Para edi%)o dos ar$uivos P0P, por e1emplo, utilizar editores
robustos ou o bloco de notas n)o define o c,digo a ser criado como
bom ou ruim, depender" unicamente do $ue voc* ir" digitar. 2
mesmo serve para softwares de cria%)o e edi%)o de imagens.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 33
/ tema a ser desen"ol"ido foi denominado TAprendizT. *ele
trabalharemos os principais conceitos e recursos $ue o ,ord-ress oferece
para o processo de desen"ol"imento e customizao de temas. -or isso+
nossos es$uemas de"ero respeitar os seguintes esboos)
Wireframes do projeto Aprendiz
2s termos vistos como P"gina, Post, Cabe%al&o, !idebar, 3odap e
muitos outros ser)o amplamente e1plorados por tratar#se de um
blog e WordPress.
uitas e1plica%4es sobre cada um deles ser)o realizadas ao
decorrer do livro, n)o se preocupe em memoriz"#los agora.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 34
Padro de codifica!o WordPress
Antes de desen"ol"er o tema+ e#istem algumas normas criadas para
,ord-ress com intuito de padronizar seu c0digo-fonte. <eguir tais padres
no obrigat0rio+ porm muito interessante $uando se $uer compartilhar
algo desen"ol"ido e $ue outras pessoas entendam facilmente o material.
8T9:
"alida!o
.odas as pginas 9.M: de"em ser "erificadas pelo "alidador da
,3( certificando $ue a marcao est sendo bem feita. Hsse recurso no
necessariamente indica $ue um c0digo bom ou ruim+ mas a4uda a
entend-lo e encontrar problemas $ue podero e#istir $uando o c0digo for
aplicado ao ser"idor. Ainda assim sempre necessrio uma re"iso
manual do c0digo fonte.
#ec$amento de %a&s
.odas as tags de"em estar fechadas.
-ara tags $ue no possuem fechamento pelo padro da marcao
UtagVUWtagV como o caso das tags UbrV e UimgV a terminao com a barra
in"ertida XWX imprescind&"el.
*esses casos ainda o correto dei#ar um espao entre a tag e seu
fechamento+ passando de UbrWV na forma incorreta+ para Ubr WV no modelo
correto dos padres.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 3
Atributos e ta&s
.odas as tags e seus atributos de"em estar em letras min!sculas.
/s atributos de"ero respeitar a norma de cai#a bai#a $uando
escritos com o prop0sito de serem lidos apenas por m$uinas. <e a
informao do atributo de"er ser interpretado por humanos+ de"er
respeitar a maior legibilidade dos dados.
$ara mquinas
<meta http-equiv="content-type" content="text/html" />
$ara #umanos
<a href="http://exemplocom/" title="!e"cri#$o">%xemplocom</a>
Aspas
%e acordo com o ,3(+ todos os atributos de"em possuir um "alor+ e
de"e ser usado para este aspas simples ou duplas necessariamente.
A seguir "e4a os e#emplos do modo correto e incorreto do uso de
aspas para delimitar os "alores dos atributos das tags.
Correto
<input type="text" name="email" di"a&led="di"a&led" />
Incorreto
<input type=text name=email di"a&led>
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 3,
'ndenta!o
(omo no -9-+ a indentao no 9.M: de"e sempre refletir a
estrutura l0gica e de"er ser feita com tabulaes e no espaos. Ao
misturar os c0digos -9- e 9.M:+ os blocos de indentao -9- de"ero
respeitar o c0digo 9.M: de modo $ue os n&"eis de abertura e fechamento
de um se encai#em ao do outro.
Correto
<'php if ( ) have*po"t"(+ + : '>
<div id="po"t-," cla""="po"t">
<h, cla""="entry-title">-ot Found</h,>
<div cla""="entry-content">
<p>.pologie"/ &ut no re"ult" 0ere found</p>
<'php get*"earch*form(+1 '>
</div>
</div>
<'php endif1 '>
Incorreto
<'php if ( ) have*po"t"(+ + : '>
<div id="po"t-2" cla""="po"t error323 not-found">
<h, cla""="entry-title">-ot Found</h,>
<div cla""="entry-content">
<p>.pologie"/ &ut no re"ult" 0ere found</p>
<'php get*"earch*form(+1 '>
</div>
</div>
<'php endif1 '>
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 3'
P8P
Aspas simples e duplas
Jse aspas simples e duplas $uando apropriado. <e "oc no esti"er
tratando nada na string+ use use aspas simples. Eoc nunca de"e escapar
aspas 9.M: numa string+ por$ue "oc apenas precisa alternar entre os
tipos de aspas+ assim)
Exemplo
echo 4<a href="lin5" title="67tulo">-ome do lin5</a>41
echo "<a href=48lin54 title=48titulodolin54>8nomedolin5</a>"1
A !nica e#ceo no Aa"a<cript+ $ue as "ezes re$ues aspas simples
ou duplas. .e#tos $ue "enham dentro de atributos de"em passar pelo
attributeMescape?@ assim as aspas simples ou duplas no fecham o atributo
e in"alidam o ;9.M: causando um problema de segurana.
'ndenta!o
<ua indentao de"e sempre refletir uma estrutura l0gica. Jse tabs
reais e no espaos+ pois isso permite maior fle#ibilidade entre clientes.
Legra de ouro) tabs de"em ser usadas no in&cio das linhas e espaos
de"em ser usados no meio das linhas. H#ceo) se "oc tem um bloco de
c0digo $ue se4a mais leg&"el se esti"er alinhado+ use espaos)
Exemplo
8foo = 4algumvalor41
8foo9 = 4algumvalor941
8foo: = 4algumvalor:41
8foo3 = 4algumvalor341
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 34
(stilo das C$aves
(ha"es de"em ser usadas em multiplos blocos. <e "oc ti"er um
bloco muito grande+ considere $uebr-lo em dois ou mais blocos ou
funes. (aso se4a realmente necessria a e#istncia desse longo bloco+
por fa"or ponha um pe$ueno comentrio no final para $ue as pessoas
percebam de relance o $ue a$uela cha"e de fechamento est fechando.
Exemplo
if ( condicao + ;
acao,(+1
acao9(+1
< el"eif ( condicao9 == condicao: + ;
acao:(+1
acao3(+1
< el"e ;
acaopadrao(+1
<
*ormalmente isso apropriado para blocos l0gicos+ maiores $ue
cerca de 36 linhas+ mas $ual$uer c0digo $ue no se4a intuiti"amente 0b"io
pode ser comentado. Blocos de uma linha apenas pode omitir as cha"es
para ficarem mais concisos)
Exemplo
if ( condicao +
acao,(+1
el"e
acao9(+1
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 3*
)so de espa!os
<empre colo$ue espaos)
%ps as v"rgulas
array( ,/ 9/ : +
Em am!os os lados das atri!ui&es de operadores lgicos
> == 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
"ariveis* fun!+es* nomes de arquivos* e operadores
Jse letras min!sculas em nomes de "ari"eis e funes. <epare as
pala"ras por sublinhados ?underscores@.
Exemplo
function algum*nome( 8alguma*variavel + ; ?@ <
Ar$ui"os de"em ser nomeados descriti"amente usando letras
min!sculas. 9&fens de"em separar as pala"ras.
Exemplo
nome-do-meu-pluginphp
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 45
,inali-a!o de par.metros
-ara sinalizar parKmetros para funes prefira "alores em string a
apenas true e false $uando chamar funesP e sempre com nomes auto-
e#plicati"os.
Incorreto
function comer( 8oque/ 8devagar = true + ;

<
comer( 4cogumelo"4 +1
comer( 4cogumelo"4/ true +1
// A que "ignifica true'
comer( 4comida de cachorro4/ fal"e +1
// A que "ignifica fal"e' A opo"to de true'
A $ue o -9- no suporta argumentos em forma de nomes+ os
"alores dos sinalizadores no tem significados e toda "ez $ue aparece
uma funo como essa n0s temos $ue pes$uisar pela definio da funo.
/ c0digo pode ficar mais leg&"el se usarmos te#tos descriti"os+ ao in"s de
boleanos)
Correto
function comer( 8oque/ 8velocidade = 4devagar4 + ;

<
comer( 4cogumelo"4 +1
comer( 4cogumelo"4/ 4devagar4 +1
comer( 4comida de cachorro4/ 4rapido4 +1
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 4$
'nternacionali-a!o
A Gnternacionalizao o processo $ue dei#a uma aplicao
preparada para receber tradues. *o ,ord-ress significa marcar os
te#tos padro dos temas $ue de"ero ser traduzidos de um modo especial.
A internacionalizao tambm conhecida como i2In por possuir 2I letras
entre o i e o n.
A traduo dos termos feita com o uso do gette#t+ biblioteca $ue no
-9- 4 permitida por padro em suas e#tensesP e o ,ordpress faz uso
desse artif&cio.
ArAuivos PBT
/ gette#t percorre os ar$ui"os do sistema indicados pelo editor Q
procura de itens pre"iamente preparados para traduo+ a$ueles onde
e#istir uma chamada para a biblioteca.
Ao encontrar as entradas de traduo ele e#trai as informaes
gerando seu padro de traduo dos ar$ui"os -/. e#emplificado abai#o)
Exemplo
B: 0p-content/theme"/vitrine/pagephp:,C
m"gid "%dit"
m"g"tr "%ditar"
ArAuivos PB
-ara traduzir temas+ plugins e o pr0prio ,ord-ressP cada tradutor
especifica nas linhas msgstr a traduo para o idioma pretendido.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 4%
/ resultado dessa traduo um ar$ui"o -/ no mesmo formato de
um ar$ui"o -/.+ porm com cabealhos espec&ficos e ob"iamente as
tradues editadas.
ArAuivos 9B
Ao gerar um ar$ui"o -/ de traduo criado automaticamente um
ar$ui"o M/+ do tipo binrio+ $ue carrega consigo todas as entradas e
tradues num formato ade$uado para rpida e#trao das informaes
traduzidas.
Criando entradas
-ara tornar um te#to traduz&"el+ adicione ele dentro das funes de
traduo. As mais comumente utilizadas so)
Atribuindo o valor da tradu"#o a uma varivel
8texto = **(4Dy text4+1
+Cibindo o teCto diretamente em tela
*e(4Dy text4+1
// %""e Eltimo recur"o F equivalente a:
echo **(4Dy text4+1
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 43
Informe os te1tos sem uso de caracteres especiais ou acentua%)o
para evitar erros posteriores. 'm nosso pro/eto utilizarei termos em
ingl*s para desenvolver o tema. 5esse modo ao final teremos o
tema completo em dois idiomas6
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 44
Criando um template /eb
(om base nos ,ireframes criados podemos enfim comear a
programar nosso tema. -rimeiramente criaremos apenas um .emplate
'eb. .emplate o modelo a ser utilizado+ seria o mesmo $ue .ema+ porm
este !ltimo mais espec&fico tratando dos templates preparados para uso
com o ,ord-ressP en$uanto $ue o primeiro possui apenas formataes
'eb sem inter"eno de funes de $ual$uer (M<.
(riaremos um ar$ui"o inde#.php apenas com marcaes em 9.M:
$ue nos permita+ logo em seguida com a4uda do (<<+ obter a formatao
pretendida. Ao programar no se es$uea dos padres estudados.
Visualizao da inde!"p#p em um na$egador %e&
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
In"cio dos tra!al#os 4
indeC.p)p
Eemos a nitida separao do conte!do em camadas+ ao melhor estilo
.ableless+ cada uma com um identificador !nico ?id@ e alguns elementos
acompanhados de classes ?class@ para facilitar suas formataes.
st@le.css
/ estilo esplorado traz de modo compacto um reset de in&cio. Hssa
simples instruo faz com $ue ?de modo superficial@ todos os na"egadores
tenham um ponto em comum na definio de sua folha de estilos.
7 imprescind8vel o bom entendimento de C!! para uma boa
formata%)o dos elementos.
3epare em nosso e1emplo como poucas lin&as, mesmo desprovidas
de elementos gr"ficos mais robustos, fizeram uma enorme
diferen%a no resultado final obtido.
2s ar$uivos utilizados nesse cap8tulo est)o dispon8veis no ar$uivo
inicio+dos+tra!al#os,rar ane1o ao livro.
Tomaremos esses ar$uivos como base para a continua%)o do
desenvolvimento.
Para fins did"ticos e de fi1a%)o do conte9do altamente
recomend"vel $ue voc* pegue os ar$uivos e os altere en$uanto
e1ecuta a leitura do livro.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Parte III
Constru"#o do tema
Construo do tema 4'
/s temas ,ord-ress ficam alo4ados na pasta 'p-contentWthemesW+
partindo da pasta de instalao do (M<. (ada tema possui ainda uma
pasta dentro da pasta de temas e dentro dela todos os seus ar$ui"os de
imagem+ estilo+ funes+ etc.
2 WordPress inclui um tema padr)o em sua instala%)o. '1amine os
ar$uivos do tema padr)o cuidadosamente para ter uma mel&or
idia de como criar seus pr,prios ar$uivos de tema.
/s temas basicamente consistem de trs principais tipos de
ar$ui"os+ alm de imagens e ar$ui"os Aa"a<cript+ so eles)
st@le.css
(ontrola a apresentao ?design e laCout@ das pginas do site.
functions.p)p
Funes opcionais
ArAuivos do tema <.p)p=
(ontrolam a forma como as pginas do site gerenciam as
informaes do banco de dados para ser e#ibido no site
(stilo
Alm de informaes de estilo (<< para o tema+ stCle.css fornece
detalhes sobre o tema na forma de comentrios. %ois temas no podem
ter os mesmos dados em seus cabealhos. (aso isso ocorra ha"er
problemas ao selecionar o tema ou ati"-lo.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema 44
(omo 4 temos o ar$ui"o+ agora incluiremos como nosso cabealho
algumas informaes sobre o tema a ser criado)
st-le,css
/G
6heme -ame: .prendiH
Ier"ion: ,2
!e"cription: !e"envolvido por <a
href="http://000guia0pcom&r">Juia KordLre""</a>
.uthor: Juilherme DaHetto
.uthor MNO: http://000guia0pcom&r/
G/
/ cabealho de linhas de comentrio no stCle.css so necessrios
para o ,ord-ress para ser capaz de identificar um tema e apresent-lo no
-ainel Administrati"o acessando Aparncia V .emas. *essa pgina estaro
dispon&"eis todos os temas instalados.
-ara ser melhor "isualizado na escolha de temas+ abra seu template
e capture uma tela dele. (rie um ar$ui"o de screenshot.png com as
dimenses 3>>p# de largura por ==6p# de altura e sal"e dentro da pasta
do seu tema. Feito isso+ essa imagem ser"ir como miniatura do seu tema
e facilitar a escolha dele $uando necessrio.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema 4*
%emplate %a&s
As .emplate tags so c0digos $ue instruem o ,ord-ress para fazer
determinadas aes ou pegar alguma informao. -ara $ue a integrao
de um simples template 'eb se4a feita com o ,ord-ress necessrio a
utilizao dessas tags. Hlas "o ao banco de dados do blog e recuperam
as informaes personalizadas de cada pgina+ categoria+ autor e o $ue
mais for re$uisitado referente ao blog em uso.
Muitas "ezes nos permitido en"iar parKmetros para as tags com
intuito de personalizar ainda mais a resposta $ue elas traro. %e forma
geral+ so consideradas .emplate .ags+ todas as funes $ue usaremos
em nosso tema para e#ibir nele as informaes pro"enientes do
,ord-ressP por e#emplo) bloginfo+ 'pMna"Mmenu+ theMsearchM$uerC+
'pMgetMarchi"es.
Cabe!al$o
.rabalhando com os ar$ui"o do tema+ em nosso caso o inde#.php+
comearemos a estudar suas partes. *o topo da pgina+ separamos o
espao para nosso cabealho. (ompreendemos por cabealho a parte
superior do site $ue "ai do in&cio at a e#ibio do menu.
/ cabealho traz informaes importantes para o ser"idor 'eb e
buscadores e tambm+ em nosso caso+ em sua parte "is&"el e#ibir o nome
e a descrio do blog de acordo com os "alores informados pelo
,ord-ress. -ara isso acontecer de"emos comear a integrar nosso
ar$ui"o com as funes do ,ord-ress.
Antes mesmo da tag UheadV incluiremos a funo $ue determina o
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema 5
idioma a ser utilizado)
index,p#p
<html xmln"="http://0000:org/,PPP/xhtml" <'php
language*attri&ute"(+1 '>>
A funo languageMattributes e#ibe os atributos de linguagem para a
tag UhtmlVP identificando o idioma em uso e tambm a direo do te#to
para a pgina. Ainda dentro da tag UheadV+ adicionaremos a seguinte
linha)
index,p#p
<lin5 rel="profile" href="http://gmpgorg/xfn/,," />
Hla define o perfil de relacionamento $ue ser respeitado+ de acordo
com as normas do endereo citado. / atributo TrelT descre"e a relao do
atual documento com uma Kncora especificada pelo atributo href. / "alor
desse atributo uma lista de tipos de linNs separados por um espao
simples.
/ ,ord-ress adota o padro ;F* ?;9.M: Friends *et'orN@ Lede
de amigos ;9.M:+ $ue "isa representar nos linNs as relaes humanas.
Geralmente o atributo preenchido automaticamente pelo sistema.
Para saber mais sobre o padr)o :;< acesse &ttp=>>gmpg.org>1fn>
(ontinuando a incluir informaes rele"antes dentro da tag UheadV+
nosso cabealho para ser"idores+ adicionaremos as meta tags)
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema $
index,p#p
<meta http-equiv="content-type" content="<'php
&loginfo(4html*type4+ '>1 char"et=<'php &loginfo(4char"et4+ '>" />
<meta http-equiv="content-language" content="<'php
&loginfo(4language4+1 '>" />
Eemos o uso da funo bloginfo. Hla mostra informaes sobre o
blog+ em sua maioria as $ue so definidas em /pes Gerais do -ainel
Administrati"o do ,ord-ress ?(onfiguraes V Geral@.
A fun%)o boginfo sempre imprime um resultado para o navegador.
Caso precise do valor para uso no P0P, use get?bloginfo.
/s parKmetros usados foram)
)tmlDt@pe Y tipo do html em uso
c)arset Y codificao do te#to
language Y idioma em uso
Jtilizamos tambm a funo 'pMtitle $ue+ no caso+ e#ibir o t&tulo da
pgina com um separador de te#to localizado a direita do t&tulo.
Jtilizando ainda o bloginfo+ substituiremos o endereo do ar$ui"o de
estilo+ nome+ descrio e linNs para pgina inicial do blog fechando
temporariamente nosso cabealho)
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema %
index,p#p
<)!AC6QL% html LMRSOC "-//K:C//!6! >T6DS ,2 Utrict//%-"
"http://0000:org/6N/xhtml,/!6!/xhtml,-"trictdtd">
<html xmln"="http://0000:org/,PPP/xhtml" <'php
language*attri&ute"(+1 '>>
<head>
<lin5 rel="profile" href="http://gmpgorg/xfn/,," />
<meta http-equiv="content-type" content="<'php
&loginfo(4html*type4+ '>1 char"et=<'php &loginfo(4char"et4+ '>" />
<meta http-equiv="content-language" content="<'php
&loginfo(4language4+1 '>" />
<title><'php 0p*title( 4 V 4/ true/ 4right4 +1
&loginfo( 4name4 +1 '></title>
<lin5 rel=""tyle"heet" type="text/c""" media="all" href="<'php
&loginfo(4"tyle"heet*url4+1 '>" />
</head>
<&ody>
<div id="page-0rap">
<div id="header">
<p><a href="<'php &loginfo(4url4+1 '>" title="<'php
&loginfo(4name4+1 '>"><'php &loginfo(4name4+1 '></a></p>
<"pan><a href="<'php &loginfo(4url4+1 '>" title="<'php
&loginfo(4de"cription4+1 '>"><'php &loginfo(4de"cription4+1 '
></a></"pan>
</div>
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema 3
Dados no confiveis
*ote $ue imprimimos no atributo title dos dois linNs o nome e
descrio do blog respecti"amente. / conte!do dessas "ari"eis ser
descriminado por cada autor de blog. <upondo $ue um autor $ual$uer
defina como nome ou descrio um "alor contendo aspas poderia dei#ar o
documento in"lido para as normas do ,3( ou at mesmo significar um
desastre para o tema.
5evemos ficar atento $uando imprimimos vari"veis do WordPress
como atributos de elementos 0T@, geralmente os erros ocorrem
nos atributos alt, title e value das tags
*esses casos utilizaremos o escMattr. A funo codifica ?apenas uma
"ez@ os s&mbolos U V Z X T ?sinal de menor+ sinal de maior+ TeT comercial+
aspas duplas+ aspas simples@.
index,p#p
<div id="header">
<p><a href="<'php &loginfo( 4url4 +1 '>" title="<'php
e"c*attr( &loginfo( 4name4 + +1 '>"><'php &loginfo( 4name4 +1 '
></a></p>
<"pan><a href="<'php &loginfo( 4url4 +1 '>" title="<'php
e"c*attr( &loginfo( 4de"cription4 + +1 '>"><'php
&loginfo( 4de"cription4 +1 '></a></"pan>
</div>
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema 4
Arquivo de #un!+es
Jm tema pode opcionalmente usar um ar$ui"o de funes+ $ue
reside no subdiret0rio do tema e chamado functions.php. Hste ar$ui"o
basicamente funciona como um plugin+ e se ele est presente no tema $ue
"oc est usando+ ele carregado automaticamente durante a inicializao
do ,ord-ress ?tanto para pginas do blog e pginas de administrao@.
Ee4a algumas das principais utilizaes deste ar$ui"o)
%efinir funes $ue sero utilizadas em di"ersos ar$ui"os
diferentes do seu temaP
9abilitar recursos como os menus de na"egaoP
(riar um menu de opes para o tema+ dando opes para alterar
cores+ estilos e outros aspectosP
0enus
/ ,ord-ress incluiu um mecanismo fcil para uso de menus de
na"egao personalizados em um tema. / recurso trata-se+ como o
pr0prio nome 4 diz+ de se responsabilizar pela criao e edio de menus
para as "erses mais recentes do ,ord-ress.
-ara incorporar o suporte a menus em um tema basta incluir
algumas poucas linhas de c0digo no ar$ui"o functions.php)
(unctions,p#p
regi"ter*nav*menu( 4main-menu4/ **( 4Dain Denu4 + +1
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema
H no ar$ui"o inde#.php substituiremos a lista de linNs por)
index,p#p
<div id="menu">
<'php 0p*nav*menu( array( 4location4=>4main-menu4/
4container4=>null + +1 '>
</div>
/ "alor passado para location de"er ser o mesmo $ue o
especificado anteriormente ao registrar o menu. %esse modo "oc est
dizendo $ue a$uele menu+ de"er aparecer a$ui. (ontainer null+ pois por
padro+ adicionaria outra di"+ como 4 temos uma no ser preciso outra.
*o tiramos a di" e a incorporamos atra"s da funo+ pois+ se os
menus nao esti"erem ati"osP a formatao dos linNs ficar pre4udicada.
Ap0s implantar esse recurso+ acesse seu painel de administrao do
,ord-ress. (li$ue em Aparncia V Menus e gerencie seu menu como bem
entender. (onstru&do o menu+ ele aparecer no local indicado.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema ,
,idebar
A barra lateral ?<idebar@ uma coluna "ertical pouco mais estreita
$ue o espao para o conte!do+ e geralmente recheado de muita
informao sobre o blog. Hncontrado 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 "er duas ou mais barras
laterais em diferentes posies no laCout.
6avega"#o
Atualmente o ob4eti"o principal da barra lateral de prestar
assistncia de na"egao para o "isitante. -ara isso so pro4etadas listas
de itens para a4udar os "isitantes do seu blog a encontrar determinadas
informaes+ conte!do.
.ais listas de na"egao inclui (ategorias+ -ginas+ Ar$ui"os+ etc.
/utra ferramenta de na"egao $ue "oc "er na barra lateral um
formulrio de busca $ue tambm ser"ir para a4udar as pessoas a
encontrarem o $ue esto procurando no seu site.
:istas anin)adas
/ clssico de temas ,ord-ress usar listas aninhadas para
apresentar informaes da barra lateral. :istas aninhadas so uma srie
de listas no-ordenadas+ situadas uma dentro de outro.
A utilizao das listas aninhadas em sua barra lateral no
obrigat0rio+ no entanto o seu entendimento de grande importKncia dado
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema '
$ue+ a maioria dos plugins e informaes desen"ol"idas para serem
publicadas na <idebar+ fazem uso desse artif&cio.
Widgets
,idgets so como plugins+ mas desen"ol"idos para forncer um
simples modo de agrupar "rios elementos no conte!do da <idebar sem
ter $ue alterar nenhuma linha de c0digo para aplic-los.
Atra"s da aba Aparncia V ,idgets podemos arrast-los e troc-los
facilmente de posio no menu lateral+ e como resultado customizar ainda
mais o nosso tema. -ara efeti"ar $ual$uer edio atra"s da aba de um
'idget preciso clicar sobre o respecti"o boto sal"ar+ caso contrrio ela
no ser aplicada.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema 4
Personali3ando a Sidebar
(omo base em todos esses conhecimentos+ "amos agora atualizar o
conte!do de nossa <idebar. %entro do formulrio de busca informe como
"alor do atributo action o endereo inicial do blog e o "alor do campo de
pes$uisa)
index,p#p
<form method="get" id=""earchform" action="<'php
&loginfo(4url4+1 '>">

<input type="text" value="<'php the*"earch*query(+1 '>" name="""


id=""" />
(om as alteraes+ sempre $ue submetido o formulro redirecionar
para a pgina inicial do blog e en$uanto hou"er uma pes$uisa ati"a o "alor
ser e#ibido na cai#a de te#to para pes$uisa. / pr0#imo passo preparar
a barra lateral para receber os ,idgets.
(unctions,p#p
regi"ter*"ide&ar( array(
name4 => **( 4Dy Uide&ar4 +/
4id4 => 4my-"ide&ar4/
4&efore*0idget4 => 4<ul><li>4/
4after*0idget4 => 4</li></ul>4/
4&efore*title4 => 4<h:>4/
4after*title4 => 4</h:>4 +
+1
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema *
(om ela registraremos uma rea para ,idgets com os atributos
descritos. Eoltando ao inde#.php+ logo abai#o do formurio de busca
substitua a lista criada por)
index,p#p
<'php if ( )dynamic*"ide&ar( 4my-"ide&ar4+ + : '>
<ul>
<li><h:><'php *e( 4.rchive4 +1 '></h:></li>
<li>
<ul>
<'php 0p*get*archive"(+1 '>
</ul>
</li>
</ul>
<'php endif1 '>
A funo dCnamicMsidebar ir imprimir no referido espao o conte!do
$ue ser gerenciado pelos ,idgets e retornar "erdadeiro ou falso de
acordo com a presena ou no deles. Fazemos a "erificao e e#ibimos
uma lista com o Ar$ui"o do blog separado por ms de modo a no dei#ar o
espao "azio caso o usurio nao tenha incluido nenhum 'idget pelo painel.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema ,5
1odap
As opes para trabalhar com o rodap so "rias. R poss&"el
"erificarmos a presena de listas de linNs+ not&cias+ te#tos e muita
informao nesse espao. Jma prtica bastante usada em ,ord-ress
realizar a preparao do rodap como <idebars au#iliares e registr-las tal
como fora mostrado no item anterior permitindo a insero de ,idgets.
Mantendo o clssico padro de e#ibir apenas os crditos no rodap+
anteriormente estipulamos o conte!do $ue nosso rodap teria. Agora
"amos adapt-lo ao ,ord-ress possibilitando a traduo do te#to
informado.
index,p#p
<'php
printf( **( 4W" 6heme &y W"4 +/
4<a href="http://0000ordpre""org">Kordpre""</a>4/
4<a href="http://000guia0pcom&r">Juia KordLre""</a>4
+1
'>
A funo printf do -9-+ seu uso altamente recomendado em
circunstKncias como a demonstrada por facilitar a formatao dos te#tos a
serem e#ibidos. Hm nosso caso+ o primeiro identificador [s e#ibir o linN
para o site do ,ord-ress+ e o segundo+ o linN para o site do
desen"ol"edor.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema ,$
%rabal$ando o conte2do
A partir desse ponto comearemos a integrar o conte!do do nosso
?antigo@ template com as funes do ,ord-ress. / conte!do do blog
basicamente ser composto pelos posts+ caracterizados pelas suas
informaes como t&tulo+ data+ autor+ conte!do e classificao em tags e
categorias.
-ara conseguir o resultado esperado ser necessrio entender bem
o funcionamento do :oop do ,ord-ress. / :oop nada mais $ue o lao
de repetio respons"el por e#ibir os posts do blog.
:oop
/ :oop usado pelo ,ord-ress para e#ibir cada uma de suas
postagens. Jsando o :oop+ o ,ord-ress e#ecuta os processos de cada
uma das mensagens a serem e#ibidas na pgina atual e os formata de
acordo com os critrios especificados. Bual$uer c0digo 9.M: ou -9-
colocado no lao ser repetido em cada post.
Exemplo
<'php if (have*po"t" (++: 0hile (have*po"t" (++:' the*po"t (+1'>
ConteEdo a "er executado a cada itera#$o<&r />
UeXa ele em T6DS ou <'php echo 4LTL41 '>
<'php end0hile1 '>
<'php el"e: '>
<p><'php *e (4Uorry/ not found)4+1'></p>
<'php endif1'>
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema ,%
Acabamos de dizer ao nosso tema para "erificar a presena de
conte!do. <e e#istem conte!dos a serem e#ibidos+ en$uanto hou"erP
mostre-me os posts um a um at $ue no ha4a mais. <e no e#istir
conte!do mostraremos uma mensagem de erro na tela informando a
ausncia do conte!do.
T)e e EetDt)e
Jma das grandes "antagens das funes do ,ord-ress
4ustamente a capacidade de entendimento $ue ela nos proporciona.
Bual$uer pessoa+ com um n&"el bsico de ingls+ consegue entender o
funcionamento $ue est impl&cito a cada funo. -or e#emplo+ a e#ibio
dos t&tulos dos posts com o respecti"o linN para ele)
index,p#p
<h,><a href="<'php the*permalin5(+1 '>" title="<'php e"c*attr(
the*title(+ +1 '>"><'php the*title(+1 '></a></h,>
A funo theMpermalinN e#ibe o linN permanente ?-ermalinN@ para o
post+ en$uanto a theMtitle e#ibe o t&tulo do postP respecti"amente nos locais
onde esto especificadas.
*o entanto algumas "ezes no $ueremos e#ibir diretamente as
informaes+ mas sim transmit&-las ao -9- para tratamento e somente
depois en"iar para impresso em tela. *esses casos+ a maioria das funo
theM possuem um e$ui"alente getMtheM+ como a utilizada para e#ibir o
nome do autor do post+ destacada abai#o)
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema ,3
index,p#p
<'php printf( e"c*attr**( 4Dore po"t" from W"4 +/ get*the*author(+
+1 '>
As funes the e getMthe possuem basicamente o mesmo
funcionamento. As funes theM de"ero estar dentro do loop. As funes
getMtheM "ariam+ algumas de"em estar dentro do loop e outras recebem
identificadores de post como parKmetro.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema ,4
Plu&in AP' 3oo4s
Basicamente os hooNs so aes onde poderemos chamar outras
aes+ os conhecidos callbacNs. %essa maneira sempre $ue determinada
ao for e#ecutada no ,ordpress+ uma funo definida por "oc poder
ser chamada. Hsses TganchosT ?9ooNs@ nos permitem personalizar ainda
mais os temas com instalao de plugins e material de terceiros.
/ ,ord-ress ao deparar-se com algum desses ganchos+ interrompe
seu processamento e "erifica se e#iste alguma funo para ele para ele
fazer alguma coisa. (aso afirmati"o+ a funo e#ecutada ?podendo ser
mais de uma@ e o sistema continua seu processamento normal.
H#istem dois tipos de 9ooNs) Action e Filter ?Ao e Fitro@
Actions
(hama a funo em determinado ponto. Jsando o gancho
TadminMfooterT+ sempre $ue o rodap do painel administrati"o for
e#ecutado+ a funo para ele passada tambm ser.
.ilters
-assa argumentos+ conte!do para a referida funo de gancho.
%esse modo a funo pode usar a informao transmitida para realizar sua
tarefa. (om isso podemos ?por e#emplo@ passar uma funo ao fitro
theMcontent $ue colo$ue tags de negrito para o termo ,ord-ress+ sem
alterar de fato a funcionalidade de e#ibir o conte!do.
Gntroduziremos alguns 9ooNs espec&ficos dentro do nosso tema)
wpD)ead
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Construo do tema ,
Acompanha o elemento UheadV de um tema no ar$ui"o header.php.
wpDfooter
Aparece no footer.php+ logo antes do fechamento da tag UWbodCV.
Eisualmente no tero nenhum efeito sobre o tema+ porm a
ausncia desses poder implicar em no funcionamento e srios
problemas com plugins e outras funes $ue podero ser implementadas
futuramente.
2s ar$uivos utilizados nesse cap8tulo est)o dispon8veis no ar$uivo
construcao+do+tema,rar ane1o ao livro.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Parte IA
+strutura do tema
Estrutura do tema ,'
Eimos at a$ui como o inde#.php fle#&"el e pode ser usado
incluindo todas as referncias de cabealho+ sidebar+ rodap+ conte!do+
categorias+ ar$ui"o+ busca+ erro e $ual$uer outra pgina criada no
,ord-ress.
-or outro lado ele pode ser di"idido em m0dulos+ ar$ui"os menores e
mais espec&ficos em sua funo. (ada um desses ar$ui"os fazendo
apenas parte do tema total. (aso algum desses ar$ui"os no este4a
presente entre os demais ar$ui"os do tema+ o ,ord-ress utiliza um
ar$ui"o padro respeitando as normas de sua 9ierar$uia.
3ierarquia
/s ar$ui"os .php do tema ?separadamente conhecidos como
templates ou modelos@ se encai#am como peas de um $uebra-cabea
para gerar as pginas em seu blog. Alguns so usados em todas as
pginas da 'eb ?cabealho+ rodap e estilos@+ en$uanto outros so usados
somente em condies espec&ficas ?pginas personalizadas@.
/ ,ord-ress utiliza informaes contidas no interior de cada linN em
seu blog para decidir $ual o modelo ou con4unto deles sero utilizados para
e#ibir a pgina. .endo como ponto de partida um "erificador para todos os
tipos de consulta $ue decide $ual tipo de pgina est sendo solicitado+ os
modelos so ento escolhidos ?dependendo da disponibilidade@ na ordem
sugerida pela 9ierar$uia do ,ord-ress.
-ara ilustrar o funcionamento da hierar$uia+ supomos $ue o seu blog
est instalado em http)WWmeublog.comW e um "isitante clica em um linN $ue
o direcionar para uma pgina de categoria+ sendo essa chamada TMinha
categoriaTP algo como http)WWmeublog.comWcategoriaWminha-categoriaW.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Estrutura do tema ,4
'ierar(uia de modelos do WordPress
Ap0s a re$uisio o ,ord-ress ir procurar por um modelo na pasta
do tema atual $ue corresponde ao slug da categoria+ categorC-minha-
categoria.php. (aso no encontre+ o pr0#imo passo procurar pelo
identificador ?G%@ da categoria. <e a categoria de identificao 2+ o
,ord-ress procura por um modelo categorC-2.php. <e esse no e#istir+ o
,ord-ress procura pelo modelo genrico+ categorC.php+ seguido do
archi"e.php e finalmente no inde#.php.
/ inde#.php portanto e#ibido sempre $ue os demais modelos no
forem encontrados por isso de suma importKncia e obrigat0rio em todos
os temas ,ord-ress.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Estrutura do tema ,*
Arquivos 0odelos
(om base no $ue acabamos de "er+ trabalharemos amplamente com
modelos. -ara facilitar nosso trabalho+ o ar$ui"o inde#.php ser di"idido
em 5 partes ?As reticncias ser"em apenas para resumir o conte!do dos
ar$ui"os. %essa forma ao e#ecutar a separao dos ar$ui"os+ todos os
c0digos originais de"em ser mantidos@)
#eader,p#p
<)!AC6QL% html LMRSOC "-//K:C//!6! >T6DS ,2 Utrict//%-"
"http://0000:org/6N/xhtml,/!6!/xhtml,-"trictdtd">
<html xmln"="http://0000:org/,PPP/xhtml" <'php
language*attri&ute"(+1 '>>

<div id="menu">
<'php 0p*nav*menu( array( 4location4=>4main-menu4/
4container4=>null + +1 '>
</div>
side!ar,p#p
<div id=""ide&ar">

</div><)-- B"ide&ar -->
Ainda dentro do <idebar e#trairemos nosso formulrio de busca+
dei#ando-o em um ar$ui"o separado de nome searchform.php. Assim caso
"oc $ueira utilizar o formulrio em outro local tambm poder.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Estrutura do tema '5
searc#(orm,p#p
<form method="get" id=""earchform" action="<'php
&loginfo(4url4+1 '>">
<div>
<input type="text" value="<'php the*"earch*query(+1 '>" name="""
id=""" />
<input type=""u&mit" id=""earch"u&mit" value="Ru"car" />
</div>
</form>
(ooter,p#p
</div><)-- Bcontainer -->

</html>
index,p#p
<div id="content">

</div><)-- Bcontent -->
3epare como a marca%)o do conte9do 0T@ com coment"rios do
tipo B6## Cnome#do#bloco#de#fec&amento ##D au1ilia e muito na
distribui%)o dos c,digos.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Estrutura do tema '$
'ncludes %a&s
As include tags so usadas nos modelos para e#ecutar 9.M: e -9-
$ue se encontram em outros ar$ui"os modelo. / -9- possui as instrues
include e re$uire para esse fim+ no entanto para ar$ui"os espec&ficos do
tema aconselh"el o uso das Gncludes .ags em razo da facilidade e
padronizao do c0digo.
Hm nosso ar$ui"o inde#.php incuiremos as chamadas getMheader+
getMsidebar e getMfooter)
index,p#p
<'php get*header(+1 '>
<div id="content">

</div><)-- Bcontent -->
<'php get*"ide&ar(+1 get*footer(+1 '>
H no ar$ui"o sidebar.php incluiremos getMsearchMform)
side!ar,p#p
<div id=""ide&ar">
<ul><li><'php get*"earch*form(+1 '></li></ul>

Ao abrirmos no"amente o nosso blog+ constataremos $ue os demais
ar$ui"os foram chamados nos respecti"os espaos. (aso algum modelo
no se4a encontrado+ em seu lugar ser inclu&do o ar$ui"o homSnimo da
pasta 'p-includesWtheme-compat e $uando esse no e#istir+ no caso do
formulrio de busca+ ser automaticamente gerado.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Estrutura do tema '%
'ncluindo arquivos
Agora $ue sabemos o $uo fcil pode ser nosso trabalho
reapro"eitando TpedaosT do nosso tema+ "amos e#tender essa prtica
para $ual$uer ar$ui"o -9-. -ara isso de"emos ter um ar$ui"o com as
instres dese4adas denominado slug.php 4unto com os demais ar$ui"os
do tema. -ara incluir as referidas instrues em um outro ar$ui"o basta
informar)
Exemplo
<'php get*template*part( 8"lug +1 '>
!lug uma e1press)o do meio /ornal8stico para criar identifica%4es
mais claras e intuitivas para conte9do publicado na web.
Aplicam#se no uso dos Permalin(s com suas E3@ amig"veis aos
visitantes do blog. Ema identifica%)o slug n)o possui acentos,
caracteres especiais ou espa%os em branco.
(riaremos para esse passo um ar$ui"o dizendo $ue a informao
procurada no e#iste+ ou se4a+ o usurio fez uma consulta $ue no te"e
resultados e precisamos inform-lo disso. Assim sendo edite)
index,p#p
// "u&"titua
<p><'php *e(4Uorry/ the content not found)4+1'></p>
// por
<'php get*template*part( 4no-re"ult"4 +1 '>
(riaremos um ar$ui"o chamado no-results.php e nele colocaremos a
informao $ue dese4amos e#ibir+ copie a linha substitu&da dentro desse
ar$ui"o.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Estrutura do tema '3
%a mesma forma faremos com o conte!do dos posts. (riaremos um
ar$ui"o chamado loop.php e nele colocaremos todas as instrues do
:oop $ue esta"am no inde#.php. -or outro lado+ nesse !ltimo ar$ui"o+
substituiremos as instrues por sua chamada. Ee4a como ficou o
inde#.php final)
index,p#p
<'php get*header(+1 '>
<div id="content">
<'php get*template*part(4loop4+1 '>
</div><)-- Bcontent -->
<'php get*"ide&ar(+1 get*footer(+1 '>
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Estrutura do tema '4
,in&le5p$p
Gremos agora preparar o ar$ui"o $ue receber os posts $uando
"isualizados separadamente e tambm poder trabalhar com os
comentrios+ item de muit&ssima importKncia para $ual$uer blog.
(opie o ar$ui"o loop.php e renomeie para single.php e inclua os
ar$ui"os de cabealho+ sidebar e rodap nos respecti"os lugares. *o se
es$uea da di" de conte!do $ue foi dei#ada no inde#.php.
%entro da di" entrC-meta+ logo ap0s e#ibir o nome do autor+
incluiremos um linN $ue nos le"ar at os comentrios utilizando a funo
commentsMpopupMlinN.
single,p#p
<'php comment"*popup*lin5( **( 4Seave a comment4 +/ **( 4,
Comment4 +/ **( 4W Comment"4 +/ 4comment"4/ **( 4Comment" are
clo"e4 + +1 '>
-or fim ao final da di" com classe post+ incluiremos a funo
commentsMtemplate.
single,p#p
</div><)-- po"t -->
<'php comment"*template(+1 '>
<'php end0hile1 '>
-ronto+ seu sistema de comentrios est ati"o e pronto para ser
usado+ no entanto algumas alteraes no (<< sero necessrias para
dei#ar a listagem e o formulrio mais bem apresent"eis.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Estrutura do tema '
st-le,css
commentli"t ; margin: ,2px 2 :2px 21<
commentli"t li ; li"t-"tyle: -enhum1<
commentli"t li ul ; margin-left: 92px1<
commentli"t li comment-&ody ; &ac5ground: Beee1 padding: ,2px1
margin-&ottom: ,2px1<
commentli"t img ; float: left1 margin: Cpx1<
commentli"t p ; clear: &oth1 margin: ,Cpx 21 color: BCCC1<
reply ; text-align: right1<
Bcommentform ; margin-top: ,Cpx1<
Bcommentform p ; margin-&ottom: Ypx1<
)istagem dos coment*rios do tema Aprendiz
2s ar$uivos utilizados nesse cap8tulo est)o dispon8veis no ar$uivo
estrutura+do+tema,rar ane1o ao livro.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Parte A
Aprimoramentos
%primoramentos ''
<abemos $ue nosso tema suporta e#ibir mais de um post na inde#. /
n!mero de posts a serem e#ibidos por pgina configura"el pelo painel
em (onfiguraes V :eitura. *o entanto $uando a $uantidade de posts
e#istentes no blog ultrapassar esse n!mero em nosso tema atual+ no
ter&amos condies de "er os posts mais antigos.
-ara resol"er a situao criaremos uma paginao para $ue nosso
tema nao dei#e de e#ibir nenhum post+ por mais antigo $ue ele se4a. *o
ar$ui"o loop.php ap0s o final do :oop incluiremos)
loop,p#p
<div id="navigation">
<'php previou"*po"t"*lin5( **( 4-e0er po"t"4 + +1 '>
<'php next*po"t"*lin5( **( 4Alder po"t"4 + +1 '>
</div>
-ara melhor e#ibir em tela+ no stCle.css tambem incluiremos)
st-le,css
/G -avega#$o G/
Bnavigation a ; &ac5ground: Bc991 color: Beee1 padding: 3px1<
Bnavigation a:hover ; &ac5ground: BfcY1 color: B:::1<
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos '4
1esumo
*o entanto muitas "ezes ao e#ibir a listagem dos posts o "isitante
no clica para "er o post separadamente pois 4 o leu por completo. Jma
e#celente prtica muito utilizada a de e#ibir apenas os resumos nas
paginaes e apenas no single.php e#ibir o restante do post.
-ara isso no loop.php ao in"es de informar theMcontent+ respons"el
por e#ibir o conte!do+ informe theMe#cerpt.
loop,p#p
<div cla""="entry">
<'php the*excerpt(+1 '>
</div>
*essas circunstKncias+ caso o campo resumo foi preenchido durante
a edio do post ele ser e#ibido+ seno um n!mero limitado de pala"ras
do te#to original sero e#postos seguido de um continuador de te#to \...]
,earc$
Ainda tratando de paginao de posts+ criaremos agora o ar$ui"o
search.php $ue ser e#ibido $uando uma busca for e#ecutada. (opie o
ar$ui"o inde#.php e renomeie para search.php
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos '*
searc#,p#p
<div id="content">
<h, id="archive"><'php printf( **( 4Uearch re"ult" for: <"pan>
W"</"pan>4 +/ get*"earch*query(+ +1 '></h,>
<'php get*template*part(4loop4+1 '>
</div><)-- Bcontent -->
Gnclua as seguintes formataes no stCle.css
St-le,css
/G .rquivo G/
Barchive ; margin-&ottom: 9Cpx1 &order: 21<
Barchive "pan ; color: Bc991 text-decoration: underline1<
Conditional %a&s
As tags condicionais podem ser usadas em seus modelos para
mudar o conte!do e como ele e#ibido em uma certa pgina dependendo
em $uais condies a pgina se encontra. Gsto + fazemos a "erificao se
a pgina acessada determinada pgina+ e de acordo com a resposta
obtida realizaremos ou no certas instrues.
As tags "erificam se uma determinada condio satisfeita+ e em
seguida+ retorna "erdadeiro ou falso. Algumas das tags condicionais
geralmente usadas so) isMsingle+ isMhome e isMpage $ue "erificam se a
pgina atual a de posts+ inicial ou uma pgina respecti"amente.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 45
Arc$ive
Apurando os dados da mesma maneira+ trataremos das buscas
$uando efetuadas por tag+ categoria+ autor ou data. -ara isso+ copie o
ar$ui"o recm modificado search.php e renomeie para archi"e.php. *o
local de e#ibio do t&tulo+ faa)
arc#ive,p#p
<div id="content">
<h, id="archive">
<'php
if ( i"*day(+ +
printf( **( 4!aily archive": <"pan>W"</"pan>4 + /
get*the*date(+ +1
el"e if ( i"*month(+ +
printf( **( 4Donthly archive": <"pan>W"</"pan>4 + /
get*the*date( 4F Q4 + +1
el"e if ( i"*year(+ +
printf( **( 4Qearly archive": <"pan>W"</"pan>4 + /
get*the*date( 4Q4 + +1
el"e if ( i"*tag(+ +
printf( **( 46ag: <"pan>W"</"pan>4 + / "ingle*tag*title( 44/
fal"e + +1
el"e if ( i"*category(+ +
printf( **( 4Category: <"pan>W"</"pan>4 + /
"ingle*cat*title( 44/ fal"e + +1
el"e if ( i"*author(+ +;
8author = get*u"erdata( 8*J%6?4author4@ +1
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 4$
printf( **( 4.uthor: <"pan>W"</"pan>4 + / 8author->di"play*name
+1
<
el"e
*e( 4Rlog archive"4 +1
'>
</h,>
<'php get*template*part(4loop4+1 '>
</div><)-- Bcontent -->
!empre criaremos ar$uivos para o tema respeitando a &ierar$uia
das p"ginas. 5e nada adiantaria ter o ar$uivo acima se e1istissem
tambm os ar$uivos date.p&p, tag.p&p, categorF.p&p e aut&or.p&p
por e1emplo.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 4%
Posts e p&inas
-osts so como not&cias $ue "oc escre"e com um certa
periodicidade e so mostrados no blog em ordem cronol0gica re"ersa+ ou
se4a+ os mais no"os antes dos mais antigos. As pginas por sua "ez
contm uma informao esttica sem rele"Kncia com a data na $ual foi
criada+ mas sim pelo seu conte!do em si $ue geralmente trata $uestes
sobre o site ou seus mantenedores.
%e"ido a essa clara discrepKncia de dinKmica e rele"Kncia baseada
na data de sua publicao atribu&da a pginas e posts+ apenas esses
!ltimos so incorporados no feed. Hm uma e#planao simb0lica seria
como se o blog se manti"esse dentro de uma linha do tempo determinada
pelos posts e as pgina coe#istiriam do lado de fora dessa linha.
-ara fins de organizao do conte!do as pginas podem possuir
uma hierar$uia entre si $uando marcado suas respecti"as pginas pai ?ou
me@ e ordem na cai#a ^Atributos de pgina_ da tela de edio. -or outro
lado os posts possuem um sistema mais comple#o utilizando-se de tags e
categorias.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 43
0odelos de P&inas
/ ,ord-ress pode ser configurado para usar diferentes modelos de
pgina para pginas diferentes. -ara alternar o modelo de pgina+
en$uanto edita uma pgina $ual$uer pelo painel de administrao+
selecione o modelo na lista chamada Modelo. / ar$ui"o padro $ue e#ibir
o conte!do das pginas a page.php.
Para acessar o seletor de modelo, dever" e1istir pelo menos um
modelo de p"gina personalizado dispon8vel no tema ativo.
Criando um novo modelo de pgina
/s ar$ui"os de modelo da pgina de"ero estar na pasta do seu
tema. Eoc poder criar um ar$ui"o com $ual$uer nome+ e#ceto os nomes
reser"ados do ,ord-ress como no caso do header+ footer+ sidebar e afins.
-ara criar um modelo basta inserir no cabealho da pgina a instruo)
Exemplo
/G 6emplate -ame: -ome do modelo G/
As etapas a seguir sero feitas para criarmos um modelo de e#ibio
das nossas pginas)
(opie a single.php e renomeie para page.php
Apague a di" de classe post-utilitC+ pois pginas no tem categoria
nem tags.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 44
P&inas adicionais
(riaremos agora dois modelos de pginaP um sem os comentrios e
outro sem a <idebar.
<ote $ue assim como no item anterior, os passos de e1ecu%)o dos
t,picos a seguir ser)o dados como itens de uma lista. 'ssa pr"tica
foi tomada para evidenciar ainda mais a facilidade $ue encontramos
nessa fase do desenvolvimento, tendo bem estrutrado e separado
as partes do nosso tema.
Sem comentrios
(opie o ar$ui"o page.php e renomeie para page-noreplC.phpP
-ara dei#ar a pgina sem comentrios apague a linha com a
instruo U1php commentsMtemplate?@P 1V.
Sem Sidebar
(opie o recm criado ar$ui"o page-noreplC.php e o renomeie para
page-nosidebar.phpP
-ara dei#ar a pgina sem <idebar apague o getMsidebar?@P
*a di" do conte!do ?id`XcontentX@ tro$ue o identificador para
content-fullP
Hdite o (<<.
st-le,css
Bcontent-full ; 0idth: P22px1 padding: 92px1 &ac5ground: Bfff1<
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 4
P&ina 676
-or "ezes comum acontecer de "oc apagar alguns posts ou o
"isitante digita um endereo in"lido para teu blog e uma pgina de erro
aparece. *a atual situao do nosso tema+ a mensagem $ue e#ibida a
contida no ar$ui"o no-results.php.
P*gina de erro do T%itter
*o entanto+ tal ar$ui"o e mensagem referem-se a ausncia de
conte!do e no a ine#istncia dele+ isto + o endereo e#iste+ porm no
tem informaes a serem e#ibidasP en$uanto $ue para erros do tipo 5>5 o
endereo in"lido+ no e#iste.
(opie o ar$ui"o inde#.php
Lenomeie para 5>5.php
Apague a instruo U1php getMtemplateMpart?TloopT@P 1V e no local
informe sua mensagem de erro)
./.,p#p
<h, id="archive"><'php *e( 4%rror 323) Onvalid MNS4 +1 '></h,>
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 4,
Classes do %ema
Gmplementando as seguintes funes de classes para 9.M:+ o
,ord-ress gera automaticamente atributos de classe para bodC+ post e
elementos dos comentrios. -ara classes de posts+ funciona apenas
dentro do :oop.
Etilizaremos apenas o bodF e post /" $ue os coment"rios estamos
pegando pronto do WordPress e n)o necessitar" de altera%4es.
#eader,p#p
<&ody <'php &ody*cla""(+1 '>>
loop,p#p) single,p#p) page,p#p) ,,,
<div <'php po"t*cla""(+1 '>>
%essa forma "oc poder customizar o (<< como bem entender e
melhor apro"eitar+ por e#emplo+ para determinar titulos de uma categoria
na cor "erde basta incluir na folha de estilo)
Exemplo
category-"lug-da-categoria h, ; color: B2c21<
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 4'
8avascript
Jma forma segura de acrescentar c0digos 4a"ascripts a um tema
,ord-ress registrando-os inicialmente "ia pgina de funes do tema+ e
posteriormente incluindo as chamadas para os registros onde necessrio+
em geral no header.php.
Hsse processo apenas inclue o script se ele 4 no tenha sido
inclu&do+ e tambm capaz de carregar scripts embutidos do ,ord-ress+
como faremos com o 4BuerC no header.php)
#eader,p#p
0p*enqueue*"cript("Xquery"+1
Lepare $ue o script foi adicionado com sucesso por fazer parte da
biblioteca de scripts do ,ord-ress como mencionado. Alm desse+
incluiremos tambm um script respons"el por permitir en"iar uma
resposta aos comentrios sem a necessidade de recarregar a pgina.
Faremos isso da seguinte forma logo abai#o da insero da 4BuerC)
#eader,p#p
if ( i"*"ingular(+ == get*option( 4thread*comment"4 + +
0p*enqueue*"cript( 4comment-reply4 +1
Ae/a a lista completa de scripts $ue o WordPress possui acessando
a pasta wp#includes>/s
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 44
1egistrando scripts
Muitas "ezes precisamos incorporar c0digos 4a"ascript ao tema
criado para termos uma maior interao com o "isitante e os elementos
9.M: do laCout. Eamos incluir um script utiizando o modo seguro do
,ord-ress. -ara isso faa o registro dentro do ar$ui"o de funes do
tema)
(unctions,p#p
0p*regi"ter*"cript( 4validator4/
get*&loginfo( 4template*directory4+ 4/X"/validatorX"4/
array( 4Xquery4 +/ 4,24 +1
*ote $ue especificamos como terceiro parKmetro+ a obrigatoriedade
do script 4BuerC ser carregado antes do nosso. Gsso por$u iremos fazer
uso da biblioteca e se ea no esti"er presente+ nosso c0digo no
funcionar.
Falida"#o do formulrio
/ script proposto ir fazer a "alidao do formulrio de comentrios+
antes dele ser en"iado. -erceba $ue foi criado uma pasta dentro da pasta
do tema com o nome 4s+ e dentro dela incluimos o ar$ui"o "alidator.4s
2 ob/etivo do t,pico ilustrar o modo de inserir scripts em seu
tema, por isso o c,digo do ar$uivo validator./s n)o ser" publicado.
Para obt*#lo abra a pasta aprendiz>/s do ar$uivo ane1o a este
cap8tulo.
/ script "erificador muito interessante de ser utilizado pois reduz
ainda mais o n!mero de spams nos seus comentrios. Falta agora incluir o
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos 4*
script ao tema. / melhor local para tal tarefa dentro do ar$ui"o do
cabealho. (omo a "erificao somente ser usada se o formulrio de
comentrios esti"er sendo e#ibido e hou"er a possibilidade de respostaP
fizemos uma pe$uena "erificao para saber se a pgina re$uisitada
atende aos re$uisitos.
#eader,p#p
if ( i"*"ingular(+ == get*option( 4thread*comment"4 + +;
0p*enqueue*"cript( 4comment-reply4 +1
0p*enqueue*"cript( 4validator4 +1
<
-ara tornar a e#ibio do erro mais chamati"a iremos incluir algumas
informaes em nossa folha de estilos.
st-le,css
error ; font-0eight: &old1 color: Bc991<
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos *5
#ol$a de estilos
/ resultado final da formatao de um tema ,ord-ress depende
muito das folhas de estilo (<<. (om o uso delas "oc tem em suas mos
muitas opes de configurar um laCout da maneira mais con"eniente.
Mesmo criando tudo do zero preciso fazer uso+ ou ento padronizar+
algumas formataes $ue so inerentes ao ,ord-ress e seu
funcionamento.
Classes do WordPress
/ ,ord-ress incui automaticamente "rias classes para as imagens
e os elementos de bloco "isando padronizar funes bsicas+ como por
e#emplo o alinhamento de imagens dentro dos posts atra"s das classes
alignleft+ aligncenter+ alignright e alignnone.
*o caso das imagens+ alm da $uesto do alinhamento+ elas ainda
necessitam de formatao para suas respecti"as legendas. Eerifi$ue as
classes para tal formatao)
st-le,css
aligncenter/ divaligncenter ; di"play: &loc51 margin: 2 auto1<
alignleft ; float: left1<
alignright ; float: right1<
/G ." in"tru#Ze" a&aixo "$o para formatar a" legenda" G/
0p-caption ;<
0p-caption img ;<
0p-caption p0p-caption-text ;<
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos *$
1egistrando estilos
%a mesma forma $ue registramos e utilizamos nossos scripts+
podemos tambm incluir no"os ar$ui"os (<< ao nosso tema+ alm do
stCle.css. Geralmente iremos adotar essa prtica $uando o ar$ui"o de
estilo principal esti"er muito e#tenso e precisemos di"id&-los em partes
menores para melhorar o entendimento do mesmo. /u ento $uando
dese4amos criar estilos adicionais ao 4 e#istente.
(unctions,p#p
0p*regi"ter*"tyle( 4cu"tom4/ get*&loginfo( 4template*directory4+
4/c""/cu"tomc""4 +1
custom,css
Bmenu ; &ac5ground: BYYY1 color: B:::1<
Bmenu ul li a ; color: Bfff1<
Bmenu ul li a:hover ; color: Bff21<
%entro do nosso cabealho chamarei o ar$ui"o apenas $uando for
e#ibida uma pgina de busca. -ara surtir efeito preciso ainda $ue a
declarao este4a sendo e#ibida ap0s a insero do estilo principal.
#eader,p#p
if ( i"*"earch(+ + 0p*enqueue*"tyle( 4cu"tom4 +1
Apesar do nome dado ao identificador do estilo ser o mesmo $ue o
do ar$uivo, essa n)o uma regra a ser seguida. 2 termo $ue ir"
ser recuperado ser" o do identificador.
A pr"tica foi adotada por evitar confus4es desnecess"rias de
nomenclatura. 2 mesmo alerta vale tambm para os scripts.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos *%
%radu!o
%urante todo o desen"ol"imento esti"emos preparando nosso tema
para traduo incluindo os termos a serem utilizados nas funes de
internacionalizao do -9- e ,ord-ress. Agora iremos traduzir os termos
com a a4uda de um soft'are li"re chamado -oHdit.
Para fazer o download do software acesse o site oficial do software
em &ttp=>>www.poedit.net>download.p&p
Po+dit
-oedit um editor de ar$ui"os .po de modo "isual+ com recursos $ue
facilitam o manuseio e aplicao das tradues dos te#tos. -ara iniciar um
processo de traduo e#ecute o soft'are e siga as etapas)
(li$ue em TAr$ui"oT e logo ap0s T*o"o catlogo...TP
*a tela a seguir informe os dados do pro4eto com o $ual est
trabalhando+ para tabela de caracteres escolha utf-IP
*a aba T(aminhosT+ insira o caminho base para seu temaP ou se4aP
o flu#o de pastas $ue o sistema de"er percorrer at encontrar os
ar$ui"os a serem traduzidosP
Gnsira o caminho na listagem e#ibida abai#o do campo caminho
base ?H#.) ()a'ampa'''a'ordpressa'p-contentathemesaaprendiz@P
*a aba T-ala"ras-cha"eT de"ero ser inseridas as funes de
traduo $ue estamos incluindo aos ar$ui"os desde o in&cio do
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos *3
desen"ol"imento do tema ?H#.) MM+ Me+ Mn@P
Ao final cli$ue em /b para confirmar suas aesP
Feito isso cli$ue agora em (atlogo V Atualizar a partir do c0digo
fonteT ?ou no terceiro &cone+ com o globo desenhado@ para o -oHdit
capturar todas as entradas dos ar$ui"os e#istentes no endereo
informado e mostr-las em tela.
Tradu3indo
(licando sobre determinado te#to+ embai#o aparecero dois campos
de te#to) o primeiro deles com o te#to original e o segundo+ edit"el+
aguarda o te#to traduzido. Apertando Alt c ( $uando escolher determinado
termo+ este repetido para a traduo. (aso e#ista d!"ida $uanto a
traduo de uma certa pala"ra+ aperte Alt c J para marc-la ou desmarc-
la como incerta dependendo de sua atual situao.
Lealizada a traduo de todos os termos+ no ar$ui"o de funes
functions.php inclua)
(unctions,p#p
load*theme*textdomain( 4!efault4/ 6%DLS.6%L.6T4/lang4 +1
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%primoramentos *4
PoEdit com todos os termos traduzidos
2s ar$uivos utilizados nesse cap8tulo est)o dispon8veis no ar$uivo
aprimoramentos,rar ane1o ao livro.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Considera&es 0inais *
Considera"-es .inais
-arabnsd Agora "oc 4 est apto a entrar de "ez no uni"erso de
desen"ol"imento do ,ord-ress. (om os conceitos a$ui "istos "oc
conheceu a ferramenta+ todo seu funcionamento de forma geral e 4
tornou-se capaz de produzir seu pr0prio material com base em um
template 'eb.
Eoc perceber $ue tambm acabou de aprender a lidar mais
facilmente com e"entuais atualizaes+ temas+ plugins e reparos ao seu
sistema $uando for necessrio.
Ao continuar trabalhando com o ,ord-ress "oc "er ainda o $uo
fcil implementar recursos $ue possuem enormes atrati"os "isuais e
funcionais ao teu trabalho sem complicaes+ em poucas linhas de c0digo+
baseado nas informaes contidas nesse li"ro.
-ara facilitar sua busca por informaes $uando utilizar o li"ro como
referncia+ a seguir temos uma listagem com as funes utilizadas no
tema. .odas elas bem e#plicadas e detalhadas com suas respecti"as
descries+ modo de uso+ parKmetros e "alores retornados.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Ap/ndice A0 1efer/ncia de fun"-es
%p1ndice %2 3e(er1ncia de (un&es *'
99
&escri"#o
Jm alias para translate. Letorna a string traduzida para o termo
passado como parKmetro.
Gso
**( 8text/ 8domain +
ParHmetros
8text ("tring+ (o&rigatrio+
.e#to a ser traduzido
-adro) *enhum
8domain ("tring+ (opcional+
%om&nio de onde o te#to traduzido ser recuperado
-adro) T%efaultT
1etorna
?string@ .e#to traduzido
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es *4
9e
&escri"#o
H#ibe a string traduzida para o termo passado como parKmetro.
Gso
*e( 8text/ 8domain +
ParHmetros
8text ("tring+ (o&rigatrio+
.e#to a ser traduzido
-adro) *enhum
8domain ("tring+ (opcional+
%om&nio de onde o te#to traduzido ser recuperado
-adro) T%efaultT
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es **
blo&info
&escri"#o
Mostra informaes sobre o blog+ em sua maioria as $ue so definidas
nas /pes Gerais do -ainel Administrati"o do ,ord-ress.
Gso
&loginfo( 8option +
ParHmetros
8option ("tring+ (Apcional+
-ala"ra-cha"e $ue referencia a informao $ue se dese4a obter.
-adro) name
:ista de opes) name+ description+ adminMemail+ url+ 'purl+
stClesheetMdirectorC+ stClesheetMurl+ templateMdirectorC+ templateMurl+
atomMurl+ rss=Murl+ rssMurl+ pingbacNMurl+ rdfMurl+ commentsMatomMurl+
commentsMrss=Murl+ charset+ htmlMtCpe+ language+ te#tMdirection+
"ersion
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $55
bod:9class
&escri"#o
Le!ne e e#ibe classes para o elemento bodC
Gso
&ody*cla""( 8cla"" +
ParHmetros
8cla"" ("tring+ (opcional+
Jma ou mais classes para adicionar a lista de classes
-adro) *ada
1etorna
?string@ :ista de classes para o elemento bodC
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $5$
comments9popup9lin4
&escri"#o
H#ibe um linN para uma 4anela popup ou um linN normal para
comentrios.
Gso
comment"*popup*lin5( 8Hero/ 8one/ 8more/ 8c""*cla""/ 8none +1
ParHmetros
8Hero ("tring+ (opcional+
.e#to mostrado $uando no h comentrios
-adro) T*o (ommentsT.
8one ("tring+ (opcional+
.e#to mostrado $uando h um !nico comentrio
-adro) T2 (ommentT.
8more ("tring+ (opcional+
.e#to mostrado $uando h mais de um comentrio. / s&mbolo T[T
substituido pelo n!mero de comentrios
-adro) T[ (ommentsT.
8c""*cla"" ("tring+ (opcional+
(lasse (<< para o linN
-adro) *enhum
8none ("tring+ (opcional+
.e#to mostrado $uando comentrios esto desabilitados.
-adro) T(omments /ffT.
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $5%
comments9template
&escri"#o
(arrega o modelo de comentrios padro do ,ord-ress
Gso
comment"*template( 8file/ 8"eparate*comment" +
ParHmetros
8file ("tring+ (opcional+
/ ar$ui"o a ser carregado
-adro) Wcomments.php
8"eparate*comment" (&oolean+ (opcional+
Gnforma se os comentrios de"ero ser separados por tipo
-adro) false
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $53
d:namic9sidebar
&escri"#o
Gmprime o conte!do de cada um dos ,idget ati"os
Gso
dynamic*"ide&ar( 8index +
ParHmetros
8index (integerV"tring+ (opcional+
*ome ou G% da <idebar
-adro) 2
1etorna
?boolean@ Eerdadeiro se encontrou algum ,idget e falso para o
contrrio.
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $54
esc9attr
&escri"#o
(odifica U V Z X T ?sinal de menor+ sinal de maior+ TeT comercial+ aspas
duplas+ aspas simples@
Gso
e"c*attr( 8texto +
ParHmetros
8texto ("tring+ (o&rigatrio+
/ te#to a ser codificado
-adro) *enhum
1etorna
?string@ / te#to codificado com entidades 9.M:
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $5
&et9aut$or9posts9url
&escri"#o
Letorna o permalinN do autor com base no identificador passado
Gso
get*author*po"t"*url( 8id +
ParHmetros
8id (integer+ (o&rigatrio+
G% do usurio $ue dese4a se obter o linN
-adro) *enhum
1etorna
?string@ JL: para a pgina de posts do referido usurio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $5,
&et9da:9lin4
&escri"#o
Letorna a JL: de ar$ui"o de um dia espec&fico
Gso
get*day*lin5( 8year/ 8month/ 8day +
ParHmetros
8year (&ooleanVinteger+ (opcional+
/ ano. Gnforme TT para o ano atual.
-adro) *enhum
8month (&ooleanVinteger+ (opcional+
/ ms. Gnforme TT para o ms atual.
-adro) *enhum
8day (&ooleanVinteger+ (opcional+
/ dia. Gnforme TT para o dia atual.
-adro) *enhum
1etorna
?string@ Hndereo do linN do dia
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $5'
&et9footer
&escri"#o
Gnclui o ar$ui"o footer.php do tema atual
Gso
get*footer( 8name +
ParHmetros
8name ("tring+ (opcional+
H#ecuta a chamada para footer-name.php.
-adro) *enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $54
&et9$eader
&escri"#o
Gnclui o ar$ui"o header.php do tema atual
Gso
get*header( 8name +
ParHmetros
8name ("tring+ (opcional+
H#ecuta a chamada para header-name.php.
-adro) *enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $5*
&et9mont$9lin4
&escri"#o
Letorna a JL: de ar$ui"o de um ms espec&fico
Gso
get*month*lin5( 8year/ 8month +
ParHmetros
8year (&ooleanVinteger+ (opcional+
/ ano. Gnforme TT para o ano atual.
-adro) *enhum
8month (&ooleanVinteger+ (opcional+
/ ms. Gnforme TT para o ms atual.
-adro) *enhum
1etorna
?string@ Hndereo do linN do ms
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$5
&et9option
&escri"#o
Jma maneira segura de se obter "alores para uma opo recuperada
do banco de dados.
Gso
get*option( 8"ho0/ 8default +
ParHmetros
8"ho0 ("tring+ (o&rigatrio+
*ome da opo a ser recuperada
-adro) *enhum
8default (mixed+ (opcional+
/ "alor padro retornado se a funo no retorna nenhum "alor
-adro) false
1etorna
?mi#ed@ / "alor da opo re$uisitada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$$
&et9searc$9form
&escri"#o
Mostra o formulrio de busca com base no ar$ui"o searchform.php se
esse e#istir.
Gso
getMsearchMform?@
ParHmetros
*enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$%
&et9searc$9quer:
&escri"#o
Letorna o termo de pes$uisa para a re$uisio atual+ se uma busca foi
e#ecutada
Gso
get*"earch*form(+
ParHmetros
*enhum
1etorna
?string@ .ermo pes$uisado
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$3
&et9sidebar
&escri"#o
Gnclui o ar$ui"o sidebar.php do tema atual
Gso
getMsidebar? ename @
ParHmetros
8name ("tring+ (opcional+
H#ecuta a chamada para sidebar-name.php.
-adro) *enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$4
&et9template9part
&escri"#o
(arrega ar$ui"os e#ternos
Gso
get*template*part( 8"lug/ 8name +
ParHmetros
8"lug ("tring+ (o&rigatrio+
/ termo slug do ar$ui"o a ser incu&do
-adro) *enhum
8name ("tring+ (opcional+
/ nome de um ar$ui"o espec&fico
-adro) *enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$
&et9t$e9aut$or
&escri"#o
Lecupera o autor do post
Gso
get*the*author(+
ParHmetros
*enhum
1etorna
?string@ / nome de e#ibio do autor do post
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$,
&et9t$e9aut$or9meta
&escri"#o
Lecupera uma meta-informao do autor do post
Gso
get*the*author*meta( 8meta +
ParHmetros
8meta ("tring+ (o&rigatrio+
Gdentifica $ua informao do autor se dese4a obter
-adro) *enhum
1etorna
?string@ Meta-informao do autor do post
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$'
&et9t$e9cate&or:
&escri"#o
Letorna um arraC de ob4etos+ sendo cada um deles+ uma categoria a
$ual o post est incluso.
Gso
get*the*category( 8id +
ParHmetros
8id (integer+ (o&rigatrio+
/ identificador do post.
-adro) epost-VG% ?o G% do post atual@
1etorna
?arraC@ As categorias do post
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$4
&et9t$e9cate&or:9list
&escri"#o
Letorna uma string contendo todas as categorias do post em forma de
linNs
Gso
get*the*category*li"t( 8"ep +
ParHmetros
8"ep ("tring+ (o&rigatrio+
<eparador $ue ser inclu&do entre os linNs
-adro) :ista no ordenada+ UulVUliV
1etorna
?string@ :inNs 9.M: prontos para e#ibio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$*
&et9t$e9date
&escri"#o
Letorna a data em $ue o post foi escrito respeitando o formato passado
como parKmetro
Gso
get*the*date( 8d +
ParHmetros
8d ("tring+ (opcional+
Formato de data
-adro) / formato de data escolhido "ia painel administrati"o ?TFormato
das datasT em (onfiguraes V Geral@
1etorna
?string@ %ata formatada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%5
&et9t$e9ta&9list
&escri"#o
Gera um 9.M: contendo as tags associadas ao post atual+ onde cada
tag est linNada a respecti"a pgina.
Gso
get*the*tag*li"t( 8&efore/ 8"ep/ 8after +
ParHmetros
8&efore ("tring+ (opcional+
.e#to a ser inserido antes da string de retorno
-adro) T.ags) T
8"ep ("tring+ (opcional+
<eparador $ue ser inclu&do entre os linNs
-adro) T+ T
8after ("tring+ (opcional+
.e#to a ser inserido ao final da string de retorno
-adro) *enhum
1etorna
?string@ :inNs 9.M: prontos para e#ibio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%$
&et9t$e9ta&s
&escri"#o
Letorna um arraC de ob4etos+ sendo cada um deles+ uma tag a $ual
pertence ao post
Gso
get*the*tag"(+
ParHmetros
*enhum
1etorna
?arraC@ As tags do post
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%%
&et9userdata
&escri"#o
Letorna um ob4eto com as informaes referentes ao usurio cu4o G%
passado para ele
Gso
get*u"erdata( 8id +
ParHmetros
8id (integer+ (o&rigatrio+
Gdentificador do usurio $ue se dese4a obter informaes
-adro) *enhum
1etorna
?ob4ect@ Gnformaes "inculadas ao usurio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%3
&et9:ear9lin4
&escri"#o
Letorna a JL: de ar$ui"o de um ano espec&fico
Gso
get*year*lin5( 8year +
ParHmetros
8year (&ooleanVinteger+ (opcional+
/ ano. Gnforme TT para o ano atual.
-adro) *enhum
1etorna
?string@ Hndereo do linN do ano
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%4
$ave9posts
&escri"#o
Eerifica a e#istncia de posts para a atual consulta
Gso
have*po"t"(+
ParHmetros
*enhum
1etorna
?boolean@ (aso a consulta tenha resultado retorna "erdadeiro+ do
contrrio+ falso
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%
is9aut$or
&escri"#o
Eerifica se uma pgina de ar$ui"o de Autor est sendo e#ibida
Gso
i"*author( 8author +
ParHmetros
8author (integerV"tring+ (opcional+
G% ou apelido do autor
-adro) *enhum
1etorna
?Boolean@ Eerdadeiro ou falso para a condio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%,
is9cate&or:
&escri"#o
Eerifica se uma pgina de ar$ui"o de (ategoria est sendo e#ibida
Gso
i"*category( 8category +
ParHmetros
8category (integerV"tring+ (opcional+
G%+ t&tulo ou slug da categoria
-adro) *enhum
1etorna
?Boolean@ Eerdadeiro ou falso para a condio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%'
is9da:
&escri"#o
Eerifica se uma pgina de ar$ui"o de %ia est sendo e#ibida
Gso
i"*day(+
ParHmetros
*enhum
1etorna
?Boolean@ Eerdadeiro ou falso para a condio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%4
is9$ome
&escri"#o
Eerifica se a pgina inicial est sendo e#ibida
Gso
i"*home(+
ParHmetros
*enhum
1etorna
?Boolean@ Eerdadeiro ou falso para a condio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%*
is9mont$
&escri"#o
Eerifica se uma pgina de ar$ui"o de Ms est sendo e#ibida
Gso
i"*month(+
ParHmetros
*enhum
1etorna
?Boolean@ Eerdadeiro ou falso para a condio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $35
is9pa&e
&escri"#o
Eerifica se uma pgina est sendo e#ibida
Gso
i"*page( 8page +
ParHmetros
8page (integerV"tring+ (opcional+
G%+ t&tulo ou slug da pgina
-adro) *enhum
1etorna
?Boolean@ Eerdadeiro ou falso para a condio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $3$
is9sin&le
&escri"#o
Eerifica se uma pgina de post est sendo e#ibida
Gso
i"*"ingle( 8po"t +
ParHmetros
8po"t (integerV"tring+ (opcional+
G%+ t&tulo ou slug do post
-adro) *enhum
1etorna
?Boolean@ Eerdadeiro ou falso para a condio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $3%
is9ta&
&escri"#o
Eerifica se uma pgina de ar$ui"o de .ag est sendo e#ibida
Gso
i"*tag( 8tag +
ParHmetros
8tag (integerV"tring+ (opcional+
G%+ t&tulo ou slug da tag
-adro) *enhum
1etorna
?Boolean@ Eerdadeiro ou falso para a condio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $33
is9:ear
&escri"#o
Eerifica se uma pgina de ar$ui"o de Ano est sendo e#ibida
Gso
i"*year(+
ParHmetros
*enhum
1etorna
?Boolean@ Eerdadeiro ou falso para a condio
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $34
lan&ua&e9attributes
&escri"#o
H#ibe os atributos de linguagem para a tag UhtmlV. Gdentifica o idioma
em uso e tambm a direo do te#to para a pgina.
Gso
language*attri&ute"( 8doctype +
ParHmetros
8doctype ("tring+ (opcional+
/ tipo html do documento T#htmlT ou ThtmlT.
-adro) ThtmlT
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $3
load9t$eme9textdomain
&escri"#o
(arrega as strings traduzidas do tema
Gso
load*theme*textdomain( 8domain/ 8path +
ParHmetros
8domain ("tring+ (o&rigatrio+
Gdentificador !nico para recuperar as strings traduzidas
-adro) *enhum
8path ("tring+ (opcional+
(aminho dos ar$ui"os de traduo
-adro) -asta do tema ati"o
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $3,
next9posts9lin4
&escri"#o
Gmprime um linN para o pr0#imo con4unto de posts dentro da consulta
atual
Gso
next*po"t"*lin5( 8la&el/ 8max*page" +
ParHmetros
8la&el ("tring+ (opcional+
.e#to do linN
-adro) T*e#t -age fT
8max*page" (integer+ (opcional+
:imita o n!mero de pgina nas $uais o linN e#ibido
-adro) > Y <em limite
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $3'
post9class
&escri"#o
Le!ne e e#ibe classes para o elemento di" do post
Gso
po"t*cla""( 8cla"" +
ParHmetros
8cla"" ("tring+ (opcional+
Jma ou mais classes para adicionar a lista de classes
-adro) *enhum
1etorna
?string@ :ista de classes
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $34
previous9posts9lin4
&escri"#o
Gmprime um linN para o con4unto de posts anterior dentro da consulta
atual
Gso
previou"*po"t"*lin5( 8la&el/ 8max*page" +
ParHmetros
8la&el ("tring+ (opcional+
.e#to do linN
-adro) TUU -re"ious -ageT
8max*page" (integer+ (opcional+
:imita o n!mero de pgina nas $uais o linN e#ibido
-adro) > Y <em limite
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $3*
re&ister9nav9menu
&escri"#o
Legistra um !nico Menu de na"egao personalizado
Gso
regi"ter*nav*menu( 8location/ 8de"cription +
ParHmetros
8location ("tring+ (o&rigatrio+
Gdentificador de localizao do menu+ como um slug.
-adro) *enhum
8de"cription ("tring+ (o&rigatrio+
*o possui "alor como padro. %e"er ser especificado mesmo se
"azio. <er"ir para rotular o menu criado.
-adro) *enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $45
sin&le9ta&9title
&escri"#o
Mostra ou retorna o t&tulo da tag da pgina atual
Gso
"ingle*tag*title( 8prefix/ 8di"play +
ParHmetros
8prefix ("tring+ (opcional+
.e#to a ser retornado antes do t&tulo
-adro) *enhum
8di"play (&oolean+ (opcional+
Mostra ou retorna o t&tulo da tag se "erdadeiro ou falso
-adro) true
1etorna
?nullgstring@ *ada ou t&tulo da tag
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $4$
sin&le9cat9title
&escri"#o
Mostra ou retorna o t&tulo da categoria da pgina atual
Gso
"ingle*cat*title( 8prefix/ 8di"play +
ParHmetros
8prefix ("tring+ (opcional+
.e#to a ser retornado antes do t&tulo
-adro) *enhum
8di"play (&oolean+ (opcional+
Mostra ou retorna o t&tulo da tag se "erdadeiro ou falso
-adro) true
1etorna
?nullgstring@ *ada ou t&tulo da tag
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $4%
re&ister9sidebar
&escri"#o
(onstr0i a definio para uma !nica <idebar
Gso
regi"ter*"ide&ar( 8arg" +
ParHmetros
8arg" ("tringVarray+ (opcional+
(onstr0i a <idebar baseado nos "alores de TnameT e TidT.
-adro) *enhum
:ista de parKmetros) name+ id+ description+ beforeM'idget+ afterM'idget+
beforeMtitle+ afterMtitle
1etorna
?integergstring@ Gdentificador da <idebar
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $43
t$e9aut$or
&escri"#o
Mostra o nome de e#ibio do autor do post
Gso
the*author(+
ParHmetros
*enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $44
t$e9date
&escri"#o
H#ibe a data de publicao do post
Gso
the*date( 8format/ 8&efore/ 8after/ 8echo +
ParHmetros
8format ("tring+ (opcional+
Formato da data
-adro) F 4+ h
8&efore ("tring+ (opcional+
.e#to a ser e#ibido antes da data
-adro) *enhum
8after ("tring+ (opcional+
.e#to a ser e#ibido depois da data
-adro) *enhum
8echo (&oolean+ (opcional+
H#ibe a data $uando "erdadeiro ou retorna $uando falso.
-adro) true
1etorna
?nullgstring@ *ada ou a data formatada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $4
t$e9excerpt
&escri"#o
Mostra o resumo do post
Gso
the*excerpt(+
ParHmetros
*enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $4,
t$e9permalin4
&escri"#o
H#ibe o linN do post de acordo com as configuraes de linNs
permanente do painel administrati"o
Gso
the*permalin5(+
ParHmetros
*enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $4'
t$e9post
&escri"#o
Faz um post obtido atra"s da iterao do :oop tornar-se global
Gso
the*po"t(+
ParHmetros
*enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $44
t$e9searc$9quer:
&escri"#o
H#ibe o termo de pes$uisa para a re$uisio atual+ se uma busca foi
e#ecutada
Gso
the*"earch*form(+
ParHmetros
*enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $4*
t$e9title
&escri"#o
H#ibe o t&tulo do post
Gso
the*title( 8&efore/ 8after/ 8echo +
ParHmetros
8&efore ("tring+ (opcional+
.e#to a ser e#ibido antes do t&tulo
-adro) TT
8after ("tring+ (opcional+
.e#to a ser e#ibido depois do t&tuo
-adro) TT
8echo (&oolean+ (opcional+
H#ibe o t&tulo $uando "erdadeiro ou retorna $uando falso.
-adro) true
1etorna
?nullgstring@ *ada ou o t&tulo de acordo com o "alor passado para eecho
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $5
/p9enqueue9script
&escri"#o
Jm modo seguro de se adicionar scripts nas pginas do tema
Gso
0p*enqueue*"cript( 8handle/ 8"rc/ 8dep"/ 8ver/ 8in*footer +
ParHmetros
8handle ("tring+ (o&rigatrio+
*ome do script+ como um slug.
-adro) *enhum
8"rc ("tring+ (opcional+
JL: do script
-adro) *enhum
8dep" (array+ (opcional+
:ista de scripts $ue de"em ser carregados antes do script principal+ pelo
fato desse !ltimo depender do outro.
-adro) arraC?@
8ver ("tring+ (opcional+
Hspecifica $ual a "erso do script
-adro) false
8in*footer (&oolean+ (opcional+
*ormalmente os scripts so colocados na seo UheadV. <e este
parKmetro for "erdadeiro+ o script colocado na parte inferior do UbodCV
-adro) false
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $$
/p9enqueue9st:le
&escri"#o
Jm modo seguro de se adicionar estilos nas pginas do tema
Gso
0p*enqueue*"tyle( 8handle/ 8"rc/ 8dep"/ 8ver/ 8media +
ParHmetros
8handle ("tring+ (o&rigatrio+
*ome do estilo+ como um slug.
-adro) *enhum
8"rc ("tring+ (opcional+
(aminho para o ar$ui"o do estilo
-adro) *enhum
8dep" (array+ (opcional+
:ista de estilos $ue de"em ser carregados antes do estilo principal
-adro) arraC?@
8ver ("tring+ (opcional+
Hspecifica $ual a "erso do estilo
-adro) false
8media ("tring+ (opcional+
Hspecifica os meios para o $ual o estilo foi definido+ como TallT+ TscreenT+
ThandheldT e Tprint
-adro) false
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $%
/p9footer
&escri"#o
9ooN de identificao do rodap
Gso
'pMfooter?@
ParHmetros
*enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $3
/p9&et9arc$ives
&escri"#o
H#ibe uma lista de ar$ui"os baseada pela data.
Gso
'pMgetMarchi"es? eargs @
ParHmetros
type ("tring+ (opcional+
/ tipo de lista de ar$ui"o a ser mostrada.
-adro) monthlC
Ealores "lidos) CearlC+ monthlC+ dailC+ 'eeNlC+ postbCpost ?posts
ordenados por data de postagem@+ alpha ?posts ordenados pelo t&tulo@
limit (integer+ (opcional+
*!mero m#imo de ar$ui"os a se obter
-adro) >
format ("tring+ (opcional+
Formato para a lista de ar$ui"o. Ealores "lidos)
html Y Hm listas 9.M: ?UliV@ - -adro
option Y Hm um menu de seleo ou de opes
linN Y %entro das tags UlinNV
custom Y :ista personalizada usando strings para antes e depois de
cada linN
&efore ("tring+ (opcional+
.e#to a ser e#ibido antes do linN $uando a opo format esti"er definida
como custom
-adro) *enhum
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $4
after ("tring+ (opcional+
.e#to a ser e#ibido depois do linN $uando a opo format esti"er
definida como custom
-adro) *enhum
"ho0*po"t*count (&oolean+ (opcional+
H#ibe ou no a $uantidade de posts $ue o ar$ui"o possui
-adro) False
echo (&oolean+ (opcional+
H#ibe ou retorna a lista $uando true e false respecti"amente
-adro) true
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $
/p9$ead
&escri"#o
9ooN de identificao do cabealho
Gso
0p*head(+
ParHmetros
*enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $,
/p9nav9menu
&escri"#o
H#ibe um menu de na"egao criado atra"s do painel adminisrtati"o
Gso
0p*nav*menu( 8arg" +
ParHmetros
8menu ("tring+ (opcional+
/ menu dese4adoP aceita id+ slug+ name
-adro) *enhum
8container ("tring+ (opcional+
.ag de blog onde o menu ser inserido
-adro) di"
8container*cla"" ("tring+ (opcional+
A classe a ser aplicada ao container
-adro) menu-imenu slugj-container
8container*id ("tring+ (opcional+
/ identificador a ser aplicado ao container
-adro) *enhum
8menu*cla"" ("tring+ (opcional+
A classe (<< da tag ul $ue compe o menu
-adro) menu
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $'
8menu*id ("tring+ (opcional+
/ identificador da tag ul $ue compe o menu
-adro) menu slug+ incrementado
8echo (&oolean+ (opcional+
%etermina se o menu ser e#ibido ou retornado $uando "erdadeiro ou
falso+ respecti"amente
-adro) true
8fall&ac5*c& ("tring+ (opcional+
<e o menu no e#istir+ e#ecuta a funo a$ui e#pl&cita
-adro) 'pMpageMmenu
8&efore ("tring+ (opcional+
.e#to e#ibido antes da tag UaV do linN
-adro) *enhum
8after ("tring+ (opcional+
.e#to e#ibido depois da tag UaV do linN
-adro) *enhum
8lin5*&efore ("tring+ (opcional+
.e#to e#ibido antes do te#to do linN
-adro) *enhum
8lin5*after ("tring+ (opcional+
.e#to e#ibido depois do te#to do linN
-adro) *enhum
8depth (integer+ (opcional+
Buantos n&"eis de hierar$uia sero inclu&dos
-adro) > - .odos
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $4
80al5er (o&Xect+ (opcional+
/b4eto personalizado
-adro) ne' ,alNerM*a"MMenu
8theme*location ("tring+ (opcional+
A localizao do tema a ser utilizada. %e"e ser registrado com
registerMna"Mmenu ?@+ a fim de ser selecion"el pelo usurio
-adro) *enhum
1etorna
?boolean@ Eerdadeiro ou falso se encontrou ou no um menu
personalizado
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
%p1ndice %2 3e(er1ncia de (un&es $*
/p9title
&escri"#o
H#ibe o te#to do t&tulo de acordo com a consulta $ue est sendo
e#ecutada)
-ost ou pgina - .&tulo do post ou pgina
Ar$ui"o de datas - A pr0pria data
(ategorias - / nome da categoria
-gina do autor - / nome do autor do post
Gso
0p*title( 8"ep/ 8echo/ 8"eplocation +
ParHmetros
8"ep ("tring+ (opcional+
.e#to a ser e#ibido antes ou depois do t&tulo
-adro) Zra$uoP ?f@
8echo (&oolean+ (opcional+
H#ibe o t&tulo $uando "erdadeiro ou retorna $uando falso.
-adro) true
8"eplocation ("tring+ (opcional+
%efine a localizao do te#to separador do t&tulo. Bual$uer "alor e#ibir
o separador a es$uerda do t&tulo+ e#ceto pelo termo TrightT $ue e#ibe o
separadr a direita do t&tulo.
-adro) *enhum
1etorna
*ada
Aprenda a desenvol ver Temas WordPress www. gui awp. com. br
Ap/ndice 20 .un"-es utili3adas
bloginfo......................................62
bodCMclass.................................I7
commentsMpopupMlinN...............D5
dCnamicMsidebar........................68
escMattr......................................63
getMbloginfo...............................II
getMfooter..................................D2
getMheader................................D2
getMoption..................................ID
getMsearchMform........................D2
getMsearchM$uerC......................D8
getMsidebar................................D2
getMtemplateMpart......................D=
getMtheMauthor...........................73
getMtheMdate..............................I>
getMuserdata..............................I>
ha"eMposts................................72
isMcategorC................................I>
isMdaC........................................I>
isMmonth....................................I>
isMsingular.................................ID
isMtag.........................................I>
isMCear.......................................I>
languageMattributes...................6>
loadMthemeMte#tdomain.............83
ne#tMpostsMlinN..........................DD
postMclass..................................I7
pre"iousMpostsMlinN...................DD
registerMna"Mmenu....................65
registerMsidebar.........................6I
singleMcatMtitle...........................I>
singleMtagMtitle...........................I>
theMe#cerpt................................DI
theMpermalinN............................7=
theMpost.....................................72
theMsearchM$uerC......................6I
theMtitle......................................7=
'pMen$ueueMscript....................ID
'pMen$ueueMstCle.....................82
'pMfooter...................................76
'pMgetMarchi"es........................68
'pMhead....................................75
'pMna"Mmenu...........................66
'pMregisterMscript......................II
'pMregisterMstCle.......................82
'pMtitle......................................6=

Você também pode gostar