Escolar Documentos
Profissional Documentos
Cultura Documentos
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 '>">