Você está na página 1de 25

WordPress Para Desenvolvedores

Sumrio
O que o Wordpress................................................................................................................... 4 Caracterticas do Wordpress.......................................................................................................4 Instalando o Wordpress............................................................................................................... 4 Pacote de instalao............................................................................................................... 4 Configurao........................................................................................................................... 5 Temas.......................................................................................................................................... Como instalar no!os temas..................................................................................................... "dicionando no!os temas utili#ando o Painel de "dministrao.............................................$ "rqui!os de um tema.............................................................................................................. $ " idia geral ........................................................................................................................... $ %&emplos ............................................................................................................................... ' " (ierarquia de )odelos em detal*e......................................................................................' %&i+ir (ome page............................................................................................................... , %&i+ir Postagem Indi!idualmente........................................................................................, %&i+ir P-gina...................................................................................................................... , )ostrar Categoria............................................................................................................... , )ostrar Tag........................................................................................................................ , Custom Post Tipos ............................................................................................................ , Ta&onomias Personali#adas..............................................................................................., )ostrar .ados de "utor..................................................................................................../0 "rqui!o por .ata ............................................................................................................../0 %&i+ir 1esultados da Pesquisa........................................................................................./0 %&i+ir p-gina 404 23o %ncontrado4 ................................................................................/0 %&i+ir "ne&os.................................................................................................................... /0 1eferenciando arqui!os em templates................................................................................../0 5anc*os para Plugins.........................................................................................................../0 Template tags....................................................................................................................... // O 6oop.................................................................................................................................. // %&emplos de loop..................................................................................................................// 6oop +-sico com conte7do8..............................................................................................// %&cluir posts da categoria 98............................................................................................./: )ostra uma lista de posts duas !e#es8............................................................................./9 Pega os 7ltimos /5 posts de uma categoria qualquer....................................................../9 ;e necess-rio manter a quer< original= !oc> pode criar um no!o o+?eto8....................../9 Plugins....................................................................................................................................... /4 %strutura............................................................................................................................... /4 "PI de Plugins....................................................................................................................... /4 1efer>ncia de fun@es............................................................................................................... /$ Post= P-gina= "ne&o e AooBmarBs......................................................................................../$ Categorias= tags e ta&onomia................................................................................................/' Csu-rios e "utores................................................................................................................/' Deeds.................................................................................................................................... /' Coment-rios= Ping= e TracB+acB.........................................................................................../, "@es= Diltros e Plugins........................................................................................................./, 1elacionadas a Temas........................................................................................................../,

Dormatao........................................................................................................................... :0 .i!ersas................................................................................................................................ :/ 1efer>ncia de "@es.................................................................................................................:9 1equisi@es tpicas...............................................................................................................:9 P-ginas administrati!as........................................................................................................:9 Posts= p-ginas= ane&os e categorias.....................................................................................:9 Coment-rios= pings e tracB+acBs..........................................................................................:9 6inBs...................................................................................................................................... :4 Deeds.................................................................................................................................... :4 Templates............................................................................................................................. :4 "dministrao....................................................................................................................... :4 "!anado.............................................................................................................................. :4

O que o Wordpress
O WordPress uma plataforma semEntica de !anguarda para pu+licao pessoal= com foco na esttica= nos Padr@es We+ e na usa+ilidade. O WordPress ao mesmo tempo um softFare li!re e gratuito. %m outras pala!ras= o WordPress o que !oc> usa quando !oc> quer tra+al*ar e no lutar com seu softFare de pu+licao de +logs.

Caracterticas do Wordpress
WordPress uma poderosa plataforma de pu+licao pessoal que !em com um grande con?unto de caractersticas conce+idas para tornar sua e&peri>ncia como editor na Internet= f-cil= agrad-!el e o mais atraente poss!el. Instalado localmente Core Port-til CTC amig-!el 5esto de usu-rios Perfis de usu-rio D-cil instalao e atuali#ao 5erao dinEmica de p-ginas Internacionali#ao e 6ocali#ao Deeds 6inBs Permanentes sem GCHdigos estran*osG Comunicao entreI+logs Template Tags Temas Plugins ;en*a de proteo )ensagem para o futuro Postagens )ultiIpaginada Cpload de imagens e arqui!os Categorias %moticons ;al!ar rascun*os Jisuali#ar conte7do no pu+licado Derramentas .esBtop .ispon!eis Alog por eImail Dormatao "rqui!amento Pesquisa Internat ImportaoK%&portao

Instalando o Wordpress
O Wordpress um dos C);Ls mais f-ceis de se utili#ar= e sua instalao no poderia ser muito diferente8 trataIse de um procedimento simples e r-pido que= na maioria das !e#es= le!a alguns poucos minutos para ser finali#ado. Isto= claro= supondoIse que o usu-rio ?- possua alguma e&peri>ncia com sistemas similares= e tam+m com a criao de +ancos de dados= definio de usu-rios= sen*as= upload de arqui!os= etc. 3o nada complicado= mas acredito que a presena de um tutorial M+-sicoN ser- interessante aqui no Plugin)ania= !oltado principalmente aos usu-rios que esto iniciando o uso do Wordpress. Procurei a+ordar todos os MprocedimentosN necess-rios O instalao= desde a criao dos +ancos de dados )<;P6 at o primeiro login do usu-rio administrador. "qui !amos nHs= portanto.

Pacote de instalao
Joc> pode +ai&ar do site internacional= ou da comunidade +rasileira.

http://wordpress.org Ou do site da comunidade +rasileira= que ?- !em em portugu>s8 http://br.wordpress.org "pHs o doFnload= efetue a descompactao do arqui!o .QIP o+tido= e !oc> o+ter- uma pasta c*amada MFordpressM= com uma srie de arqui!os e tam+m 9 su+pastas= conforme a+ai&o8 FpIadmin8 arqui!os de administrao 2Painel= instalador= ...4 FpIcontent8 arqui!os do Fe+site 2Cploads= temas= plugins= cac*e...4 FpIincludes8 +i+liotecas e classes 2?Puer<= ;implePie= DCR%ditor= Protot<pe...4

Configurao
%ste um procedimento que poder- !ariar de acordo com o sistema operacional= painel de controle e recursos disponi+ili#ados no plano de *ospedagem que !oc> assinou. %m alguns painis de controle= como por e&emplo o Cpanel= a criao de +ases de dados e usu-rios= e tam+m a definio de acessos= pode ser feita atra!s da opo M)<;P6 .ata+asesN 2+ases de dados )<;P64= locali#ada dentro do grupo de op@es M.ata+asesN 2+ases de dados4. "lgumas empresas de *ospedagem tra+al*am com outros painis de controle= onde este procedimento pode !ariar +astante= e e&istem at mesmo empresas que tra+al*am com painis de controle MprHpriosN. Ou se?a= muito difcil encontrarmos um Mguia definiti!oN relati!o a este ponto= mas !ale ressaltar que= independentemente do painel de controle= do sistema operacional ou at mesmo da empresa de *ospedagem que !oc> utili#a= o que !oc> precisa fa#er o seguinte8 Criar uma +ase de dados )<;P6S Criar um usu-rio e definir uma sen*a para a +aseS .isponi+ili#ar para este usu-rio MacessoN completo O +ase de dados recm criada. "lguns painis de controle criam automaticamente o usu-rio e definem uma sen*a= outros no permitem a definio de um nome para a +ase de dados que fornecida automaticamente. .e qualquer forma= apHs os procedimentos acima !oc> ter- em mos o Mnome da +ase de dadosM= o Musu-rioN que acessar- esta +ase de dados e a Msen*aN. Ctili#ando um editor de te&tos qualquer= a+ra o arqui!o MFpIconfigIsample.p*pN. O arqui!o se encontra da seguinte maneira8 define(DB_NAME, nomedoBD) define(DB_!"E#, $s$%rioM&"'() define(DB_)A""*+#D, senh%) define(DB_,+"-, .o/%.host) % !oc> de!er- alterar somente os seguintes dados8 nomedoA.8 nome da +ase de dadosS usuario)<;P68 usu-rio com acesso O +ase de dadosS sen*a8 su+stitua pela sen*a do usu-rio com acesso O +ase de dadosS local*ost8 geralmente este !alor no precisa ser alterado= a no ser que o pro!edor de

*ospedagem possua ser!idores diferentes para arqui!os e +ase de dadosS "pHs as altera@es acima= sal!e o arqui!o com o seguinte nome8 FpIconfig.p*p e acesse o endereo do Fe+site. "cesse o endereo para logar8 http://www.se$site./om.br/wp0%dmin/

Temas
Dundamentalmente= o sistema de temas WordPress uma forma de GsBinG do seu Fe+log. 3o entanto= mais do que apenas uma GsBinG. ;em sBin= implica que sH o design de seu site alterado. Temas WordPress podem oferecer muito mais controle so+re a apar>ncia e a apresentao do material em seu site. Os temas WordPress so uma coleo de arqui!os que tra+al*am ?untos para produ#ir uma interface gr-fica com um design su+?acente e unificador para um Fe+log. %stes arqui!os so c*amados arqui!os de modelo 2template files4. Cm tema modifica a maneira como o site e&i+ido= sem modificar o softFare su+?acente e os dados que ele gerencia. Os temas podem incluir arqui!os de modelos personali#ados= arqui!os de imagem 2T.?pg= T.gif4= fol*as de estilos 2T.css4= p-ginas personali#adas= +em como de quaisquer arqui!os de cHdigo necess-rio 2T.p*p4. Os temas so um ?ogo totalmente no!o. Jamos di#er que !oc> escre!e muito so+re o fute+ol e m7sica. "tra!s do uso ino!ador do 6oop WordPress e arqui!os de modelo= !oc> pode personali#ar suas postagens de forma diferente= de acordo com a categoria de tais postagens. "ssim= suas postagens so+re fute+ol podem aparecer num fundo !erde= e as postagens so+re m7sica num fundo +ranco= por e&emplo. Com este poderoso controle so+re como diferentes p-ginas e categorias aparecem em seu site= !oc> sH estpa limitado pela sua imaginao.

Como instalar novos temas


;e o tema que !oc> est- instalando fornece instru@es= certifiqueIse de ler e seguir as instru@es para a instalao ser +emIsucedida. U recomend-!el que os desen!ol!edores do tema ofeream instru@es de instalao para os seus prHprios temas= pois os temas podem ter funcionalidade opcionais ou especiais que podem requerer medidas a mais do que as etapas de instalao discutidas aqui. ;e o tema no funciona depois de seguir as instru@es fornecidas= entre em contato com o autor do tema para a a?uda. Para adicionar um no!o tema para sua instalao do WordPress= siga estas etapas +-sicas8 /. Aai&e o arqui!o do tema e e&traia os arqui!os que ele contm. Pode ter necessidade de preser!ar a estrutura de diretHrios no arqui!o quando e&trair esses arqui!os. ;iga as orienta@es fornecidas pelo autor do tema. :. Csando um cliente de DTP para en!iar ao seu ser!idor Fe+= crie um diretHrio para conter o seu tema no diretHrio FpIcontentKt*emes fornecidos pelo WordPress. Por e&emplo= um tema c*amado de GtesteG de!em ser en!iado para FpIcontentKt*emesKtest. ;eu tema pode ter este diretHrio= como parte do arqui!o.

9. Cpload os arqui!os para o no!o diretHrio no seu ser!idor. 4. ;iga as instru@es a+ai&o para selecionar o no!o tema.

Adicionando novos temas utili ando o Painel de Administrao


Joc> pode +ai&ar temas diretamente para o seu +log= usando a opo "dicionar no!o Temas no su+Imenu "par>ncia. /. :. 9. 4. Ir no Painel de "dministrao. ;elecione "par>ncia e ento Temas. ;elecione "dicionar 3o!o Tema Cse o su+Imenu ou a pesquisa 2se quiser marque op@es de filtro4 para locali#ar um tema que !oc> gostaria de usar. 5. Clique no linB Jisuali#ar para !isuali#ar o tema antes de fa#er doFnload e instalar. . Ctili#e o linB .oFnload no topo do su+Imenu para fa#er doFnload do tema.

Arquivos de um tema
;eo o+rigatHria no arqui!o st<le.css8 /1 -heme N%me: #ose -heme !#2: the0theme3s0homep%ge Des/ription: %0brief0des/ription A$thor: &o$r0n%me A$thor !#2: &o$r0!#2 -emp.%te: $se0this0to0define0%0p%rent0theme00option%. 4ersion: %0n$mber00option%. ... 5ener%. /omments/(i/ense "t%tement if %n&. ... 1/ .e maneira +em minimalista= um tema composto de : arqui!os +-sicos e o+rigatHrios. st<le.css inde&.p*p Os modelos WordPress se encai&am como peas de um que+raIca+ea para gerar as p-ginas em seu site. "lguns modelos so usados em todas as p-ginas da Fe+ 2como oo ca+eal*o e o rodap= e estilos= por e&emplo4= enquanto outros so usados somente em condi@es especficas. " pergunta a se fa#er 8 Pual arqui!o de modelo 2s4 o WordPress usar- quando ele e&i+e um certo tipo de p-ginaV

A idia geral
O WordPress utili#a o Puer< ;tring I Informa@es contidas no interior de cada linB em seu site I para decidir qual o modelo ou con?unto de modelos sero utili#ados para e&i+ir a p-gina. Primeiro= o WordPress partidas cadeia de consulta para todos os tipos de consulta I ou se?a= ele decide que tipo de p-gina 2uma p-gina de +usca= uma p-gina da categoria= a *ome page= etc4 est- sendo solicitado.

Os modelos so ento escol*idos I e o conte7do da p-gina Fe+ gerada I na ordem sugerida pela *ierarquia Template WordPress= dependendo do que modelos esto dispon!eis num determinado Tema WordPress. Os arqui!os so estes8 st!le"css8 Dol*a de estilo do tema. U categor!"p$p8 6istagem de posts de uma o+rigatHria e de!e conter todos os estilos categoria. ou c*amadas de outras fol*as de estilo tag"p$p8 6istagem de posts de um tag. para o tema. ta#onom!"p$p8 6istagem de uma inde#"p$p8 O template principal. U usado ta&onomia qualquer. para e&i+ir qualquer conte7do quando um aut$or"p$p8 6istagem de posts de um template especfico no for encontrado. autor. comments"p$p8 6istagem de date"p$p8 6istagem de um inter!alo de coment-rios logo a+ai&o dos posts. data 2ano= m>s= dia4. comments%popup"p$p8 6ista de popups arc$ive"p$p8 Csado de maneira em uma no!a ?anela a+erta !ia generalista para categor<.p*p= Wa!ascript. aut$or"p$p= e date.p*p. $ome"p$p8 " capa do site. searc$"p$p8 1esultados de uma +usca. single"p$p8 Cm post so#in*o. &'&"p$p8 P-gina de erro para conte7do page"p$p8 Cma p-gina. no encontrado. Todos estes arqui!os so usados para su+stituir o inde&.p*p quando encontrados de acordo com os tags condicionais. Joc> pode tornar estes arqui!os ainda mais especficos !ariandos suas deri!a@es de nome= ou mesmo alterando seu cHdigo com e&press@es que usam os mesmos tags condicionais.

(#emplos
;e o seu +log est- em *ttp8KKe&ample.comKFpK e um !isitante clica em um linB para uma p-gina da categoria como *ttp8KKe&ample.comKFpKcategor<K<ourIcatK= WordPress procura por um modelo arqui!o no diretHrio do tema atual que corresponde ao I. da categoria. ;e a categoria de identificao 4= o WordPress procura por um arqui!o de modelo categor<I 4.p*p . ;e esti!er em falta= o WordPress procura por um arqui!o de modelo genrico= categor<.p*p . ;e este arqui!o no e&iste o WordPress procura por um arqui!o de modelo genrico= arc*i!e.p*p. ;e no e&isitir= ento ele procura pelo arqui!o principal= inde&.p*p . ;e um !isitante !ai para sua *omepage na *ttp8KKe&ample.comKFpK= o WordPress primeiro determina se *- uma P-gina est-tica. ;e uma p-gina est-tica foi definida= o WordPress e&i+e primeiro a p-gina principal e depois esta p-gina definida= de acordo com o modelo de *ierarquia. ;e uma p-gina est-tica no foi definida= ento o WordPress procura por um arqui!o *ome.p*p e o usa para gerar a p-gina solicitada. ;e no *- arqui!o *ome.p*p= o WordPress procura por um arqui!o c*amado inde&.p*p no diretHrio do tema ati!o= e usa esse modelo para gerar a p-gina.

A )ierarquia de *odelos em detal$e


O seguinte diagrama mostra quais arqui!os de modelo so c*amados para gerar uma p-gina do

WordPress com +ase na *ierarquia de Template WordPress.

"s se@es seguintes descre!em a ordem na qual os arqui!os de modelo so c*amados pelo WordPress= para cada tipo de consulta.

(#i+ir )ome page


/. *ome.p*p :. inde&.p*p

4. arc*i!e.p*p 5. inde&.p*p

*ostrar Tag
/. tagIXslugY.p*p I ;e o slug de uma tag for especies= ento o Wordpress procurarpor tagIespecies.p*p :. tagIXidY.p*p I ;e I. de uma tag for = ento o Wordpress procurar- por tagI .p*p 9. tag.p*p 4. arc*i!e.p*p 5. inde&.p*p

(#i+ir Postagem Individualmente


/. single.p*p :. inde&.p*p

(#i+ir P,gina

/. custom template I ;e a p-gina tem um modelo prHprio definido. :. pageIXslugY.p*p I ;e o slug da p-gina so+reImim= o WordPress Fill looB to use pageIso+reImim.p*p Custom Post Tipos 9. pageIXidY.p*p I ;e o I. de tal p-gina = /. singleIXpostZt<peY.p*p I ;e o tipo de post o WordPress procurar- por pageI .p*p for algumIpost= ento o Wordpress 4. page.p*p procurar- por singleIalgumIpost.p*p 5. inde&.p*p :. single.p*p 9. inde&.p*p *ostrar Categoria /. categor<IXslugY.p*p I ;e o slug de uma categoria for dicas= ento o Wordpress procurar- por categor<Idicas.p*p :. categor<IXidY.p*p I ;e o I.de uma categoria for /:= ento o Wordpress procurar-a por categor<I/:.p*p 9. categor<.p*p

Ta#onomias Personali adas


/. ta&onom<IXta&onom<YIXtermY.p*p I ;e a ta&onomia for !erte+rados = e o slug dessa ta&onomia for primatas= o WordPress procurar- por ta&onom<I !erte+radosIprimatas.p*p

:. ta&onom<IXta&onom<Y.p*p I ;e a ta&onomia for in!erte+rados= o WordPress procurar- por ta&onom<I in!erte+rados.p*p 9. ta&onom<.p*p 4. arc*i!e.p*p 5. inde&.p*p

Arquivo por Data


/. date.p*p :. arc*i!e.p*p 9. inde&.p*p

(#i+ir -esultados da Pesquisa


/. searc*.p*p :. inde&.p*p

*ostrar Dados de Autor

/. aut*orIXnicenameY.p*p I ;e o GnicenameG (#i+ir p,gina &'& ./o (ncontrado0 do autor for dianaBc= o WordPress /. 404.p*p procurar- por aut*orIdianaBc.p*p :. inde&.p*p :. aut*orIXidY.p*p I ;e o I. de um autor for /0= o WordPress procurar- por aut*orI (#i+ir Ane#os /0.p*p 9. aut*or.p*p /. )I)%Zt<pe.p*p I qualquer tipo )I)% 4. arc*i!e.p*p 2image.p*p= !ideo.p*p= audio.p*p= 5. inde&.p*p application.p*p ou qualquer outros4. :. attac*ment.p*p 9. single.p*p 4. inde&.p*p

-eferenciando arquivos em templates


"o c*amar arqui!os !ia (T)6 dentro dos templates= !oc> de!e sempre c*am-Ilos com uma C16 completa= tais como8 *ttp8KKFFF.meusite.com.+rKFpIcontentKuploadsK:0/0K09K04Kmeuarqui!o.e&t. Para facilitar reescritas de endereo e fa#er com que o tema se?a port-!el= use a funo +loginfo. 67php b.oginfo(3$r.3) 78 6900 res$.t% em http://www.me$site./om.br 008 67php b.oginfo(3temp.%te_dire/tor&3) 78 6900 res$.t% em http://www.me$site./om.br/wp0 /ontent/themes/me$tem% 008 .entro do arqui!os C;; no necess-rio oferecer o endereo completo de imagens= uma !e# que elas sero sempre relati!as O fol*a de estilo. h: ; b%/<gro$nd0im%ge: $r.(3im%ges/m&_b%/<gro$nd.=pg3) >

1anc$os para Plugins


;empre inclua no seu tema c*amadas para que o Wordpress e e!entuais plugins possam sa+er o que acontece durante o carregamento da p-gina. ;e um plugin insere Wa!a;cript no final das p-ginas= ele precisar- do ganc*o FpZfooter= por e&emplo. 67php

// Antes de fe/h%r % t%g 6he%d8: wp_he%d() // Antes de fe/h%r % t%g 6htm.8: wp_footer() 78

Template tags
Template Tags so utili#adas nos modelos do seu +log para e&i+ir informa@es de forma dinEmica ou personali#ar seu +log= fornecendo as ferramentas para possi+ilitar a !oc> desfrutar ao m-&imo das possi+ilidades de personali#ao que o WordPress oferece. "+ai&o est- uma lista das tags que esto dispon!eis no WordPress= classificadas por categoria de funo especfica. Je?a a refer>ncia de fun@es.

O 2oop
O loop a estrutura +-sica do Wordpress. "ssim c*amado= ele rece+e uma quer< string e e&ecuta tudo o que est- em seu interior= instanciando as !ari-!eis em um o+?eto que ser!e de refer>ncia para fun@es sinta&icamente comuns e f-ceis de se lem+rar. Comeamos !erificando se e&istem posts c*amados e instanciando as !ari-!eis= e terminamos fec*ando os comandos P(P. 67php if (h%?e_posts()) : whi.e (h%?e_posts()): the_post() 8 6900 A@$i /o.o/%mos t$do @$e @$eremos @$e se=% feito /om o /onteAdo /h%m%do. 008 67php endwhi.e e.se: 78 7

6900 !m% mens%gem diBendo @$e nenh$m /onteAdo foi en/ontr%do. 008 67php endif 78

(#emplos de loop
2oop +,sico com conte3do4
6900 ComeD% o .oop. 008 67php if ( h%?e_posts() ) : whi.e ( h%?e_posts() ) : the_post() 78 6900 Mostr% o tEt$.o /omo $m .in< p%r% o post. 008 6hF8

6% hrefGH67php the_perm%.in<() 78H re.GHboo<m%r<H tit.eGH(in< p%r% 67php the_tit.e_%ttrib$te() 78H8 67php the_tit.e() 78 6/%8 6/hF8 6900 Mostr% % d%t% no form%to: No?ember :Ith, FJJK, e f%B $m .in< p%r% o$tros posts deste %$tor. 008 6sm%..8 67php the_time(3L =", M3) 78 por 67php the_%$thor_posts_.in<() 78 6/sm%..8 6900 Mostr% o /onteAdo dentro de $m% /%iN% di?. 008 6di? /.%ssGHentr&H8 67php the_/ontent() 78 6/di?8 6900 Mostr% $m% /h%m%d% p%r% os /omentOrios P 67php /omments_pop$p_.in<() 78 6900 Mostr% $m% .ist% sep%r%d% por ?Erg$.%s d%s /%tegori%s. 008 6p /.%ssGHpostmet%d%t%H8 )osted in 67php the_/%tegor&(3, 3) 6/p8 6900 )Or% o .oop. 008 67php endwhi.e e.se: 78 6900 Mostr% $m% mens%gem /%so nenh$m post tenh% sido en/ontr%do. 008 6p8"orr&, no posts m%t/hed &o$r /riteri%.6/p8 6900 #EA(MEN-E pOr% o .oop. 008 67php endif 78

78

(#cluir posts da categoria 54


67php @$er&_posts(Q@$er&_string.3R/%tG0S,0T3) 78 67php if ( h%?e_posts() ) : whi.e ( h%?e_posts() ) : the_post() 78 6900 #epetiDUo. 008 67php endwhi.e endif 78

*ostra uma lista de posts duas ve es4


67php whi.e (h%?e_posts()): the_post() 78 6900 )rimeir% ?eB. 008 67php endwhi.e 78 67php rewind_posts() 78

67php whi.e (h%?e_posts()): the_post() 78 6900 "eg$nd% ?eB. 008 67php endwhi.e 78

Pega os 3ltimos 67 posts de uma categoria qualquer"


67php @$er&_posts(3/%tegor&_n%meG/%tegori%_@$%.@$erRposts_per_p%geG :V3) 78 67php whi.e (h%?e_posts()) : the_post() 78 6900 L%B /ois%s /om % W/%tegori%_@$%.@$erX. 008 67php endwhi.e 78

8e necess,rio manter a quer! original9 voc: pode criar um novo o+;eto4


6900 "%.?% % @$er& origin%.. Qwp_@$er& Y $m% ?%riO?e. g.ob%. definid% pe.o %mbiente. 008 67php Q@$er&_origin%. G Qwp_@$er& 78

6900 L%B $m% @$er& person%.iB%d% @$%.@$er. 008 67php Qno?%_@$er& G new *)_'$er&(3/%tegor&_n%meG/%tegori%3) 78 67php whi.e (Qno?%_@$er&08h%?e_posts()) : Qno?%_@$er&08the_post() 78 6900 L%B @$%.@$er /ois%. 008 67php endwhi.e 78 6900 A f$nDUo @$er&_posts sobrees/re?e % ?%riO?e. g.ob%. Qwp_@$er&, @$e Y % @$er& origin%.. 008 67php @$er&_posts(3/%tegor&_n%meGo$tr%_/%tegori%3) 78 67php whi.e (h%?e_posts()) : the_post() 78 6900 L%B @$%.@$er /ois% /om % @$er& /onstr$Ed%. 008 67php endwhi.e 78 6900 #estor% % ?%riO?e. g.ob%. Qwp_@$er& p%r% % @$er& origin%.. 008 67php Qwp_@$er& G Q@$er&_origin%. 78

Plugins
Cm plugin para o Wordpress nada mais do que um adendo de cHdigo capa# de interferir e modificar suas funcionalidades. Isto de!e ocorrer principalmente atra!s da "PI de c*amadas que o core do Wordpress e&ecuta O medida que desen!ol!e o processamento da p-gina. " facilidade desta categoria de desen!ol!imento uma pea c*a!e do sucesso do WordPress. Para quase toda funcionalidade que se imagine= *- um plugin.

(strutura
Cm plugin +asicamente um arqui!o P(P com um ca+eal*o que ser- usado para e&i+io na p-gina administrati!a de plugins. %ste arqui!o pode ser +em simples ou pode c*amar !-rios outros scripts= criar ta+elas no +anco de dados= e ela+orar toda uma estrutura de dados prHpria= ficando +em comple&o. O seguinte modelo de ca+eal*o usado para que o WordPress detecte um plugin colocado dentro da pasta MFpIcontentKpluginsKN. ;em este ca+eal*o um plugin sequer pode ser ati!ado no painel de administrao. 67php /1 ).$gin N%me: Nome do ).$gin ).$gin !#2: http://!#2_do_p.$gin Des/ription: Des/riDUo de :ZJ /%r%/teres. 4ersion: NAmero de ?ersUo A$thor: Nome do %$tor A$thor !#2: http://!#2_do_%$tor (i/ense: !m Hs.$gH d% .i/enD%, %.go /omo 5)(F 1/ 78

API de Plugins
O WordPress quando carregado pelos na!egadores= para cada etapa deste carregamento fa# uma pequena !erificao para c*ecar se *- algum plugin ou tema que pede para que algo se?a e&ecutado ali naquele momento. 3este caso= o que ser- e&ecutado uma funo Menganc*adaN= 2e da o nome *ooB4. %stas fun@es so c*amadas por estruturas di!ididas em duas categorias= de acordo com a sua funcionalidade8 A<es4 e!entos disparados em certos momentos durante a e&ecuoS =iltros4 lanados no momento de gra!ao ou apresentao de te&toS

Os arqui!os dos plugins funcionam principalmente O +ase de ganc*os 2*ooBs4= e aqui muito importante a fi&ao deste conceito. ;ucintamente= estas estruturas no so nada mais que M!erificadoresN durante o processamento do Wordpress. "tra!s de um ganc*o !oc> atrela determinada funo O um e!ento= aca+ando por e&ecutar esta funo quando este e!ento ocorrer no carregamento. Para definir os ganc*os !oc> pode se perguntar M%m que momento de!o fa#er issoVN para cada ao e ento !erificar a lista de ganc*os de a@es e filtros para ac*ar qual l*e atende. %&istem

a@es imagin-!eis para qualquer situao do WordPress. .> uma ol*ada na refer>ncia de a@es= pois esta parte do desen!ol!imento +em fle&!el. Por e&emplo= se quisermos e&i+ir um alerta em Wa!ascript de que a p-gina terminou de ser carregada para toda e qualquer p-gina de uma instalao= podemos fa#er assim8 67php %dd_%/tion (3wp_footer3, 3eNibe_%.ert%3) f$n/tion eNibe_%.ert%() ; 78 6s/ript t&peGXteNt/=%?%s/riptX8 %.ert(W)Ogin% /%rreg%d%9X) 6/s/ript8 67php > 78 %m +om portugu>s= MaddZaction 2[FpZfooter[= [e&i+eZalerta[4N pede ao WordPress8 M%&ecute a funo [e&i+eZalerta[ quando !oc> passar pela tag (T)6 \K+od<]N. " ao >p?footer= simplesmente e&ecuta a funo especificada quando o M\Vp*p FpZfooter24S V ]N for alcanado no tema. O+!iamente= esta ao depende que o tema utili#ado pela instalao do WordPress atenda os padr@es de desen!ol!imento requeridos= tais como colocar as fun@es MFpZfooterN no final do rodap e MFpZ*eadN no final do ca+eal*o. Cm outro e&emplo uma ganc*o que notifique o administrador do site !ia eImail a respeito de todas as pu+lica@es que os usu-rios de um site fa#em. 67php %dd_%/tion(3p$b.ish_post3, 3%?is%r_%dmin3) f$n/tion %?is%r_%dmin(Qid) ; Qp G get_post(Qi G Qid) Qem%i. G get_option(3%dmin_em%i.3) Q%ss$nto G WNo?o post: Qp08post_tit.eX Q/onte$do G %pp.&_fi.ters(3the_/ontent3, Qp0 8post_/ontent) if (wp_m%i. (Qem%i., Q%ss$nto, Q/onte$do)) ret$rn tr$e ret$rn f%.se > 78

%ste pequeno trec*o de cHdigo= em+ora com uma funcionalidade simples= assume o con*ecimento de algumas propriedades do WordPress. Jamos por partes. "ntes de mais nada registramos o que queremos fa#er. " funo MaddZaction 2[pu+lis*Zpost[= [a!isarZadmin[4N registra que a funo Ma!isarZadminN de!e ser lanada sempre um um post for pu+licado. %sta ao passa o I. do post pu+licado para a funo especificada= o que o+rigatHrio caso queiramos utili#ar informa@es deste post na funo. " funo M^p _ getZpost 2^i _ ^id4N retorna um o+?eto post= que so todas as informa@es do post especificado por M^idN= tais como o conte7do= autor= data de pu+licao= etc. Com isso temos o o+?eto em mos para utili#ar onde queremos.

" funo MgetZoption24N consulta di!ersas op@es centrais do +log= tais como o endereo= pasta de uploads= ttulo e su+ttulo= etc. "qui queremos o eImail do administrador. Colocamos no assunto uma descrio que en!ol!a o ttulo do post pu+licado. O item MpostZtitleN do o+?eto M^pN este ttulo. " funo Mappl<ZfiltersN aplica o filtro do parEmetro um ao parEmetro dois. (- um filtro padro do WordPress c*amado Mt*eZcontentN= este filtro formata um te&to para adequarIse ao conte7do de um post. Coisas em (T)6 como adicionar que+ras de lin*a= a+ertura e fec*amento de parEgrafos= ou corre@es de tags que+radas. Tam+m adiciona molduras legendadas Os fotos. %nfim= aqui a usamos para formatar a mensagem que ser- en!iada por eImail. " funo FpZmail utili#a o recurso do ser!idor mais apropriado para o en!io de correio eletr`nico. (- plugins que usam esta funo para automati#ar autentica@es ;)TP= limpa de tags (T)6= etc= moti!o pelo qual simplesmente no usado a Mmail24N= do P(P. 1etorna portanto= !erdadeiro se um eImail foi en!iado= ou falso caso *a?a fal*a. "ssim o ^email rece+er- uma ^mensagem com o ^assunto personali#ado para qualquer pu+licao.

-efer:ncia de fun<es
Os arqui!os do WordPress definem !-rias fun@es P(P 7teis. "lgumas das fun@es= con*ecidas como Template Tags= foram definidas especialmente para uso nos Temas WordPress. %&istem tam+m algumas fun@es relacionadas com a@es e filtros 2a Plugin "PI4= que so portanto usadas a princpio para desen!ol!imento de Plugins. O resto usado para criar as funcionalidades n7cleo do WordPress. )uitas das fun@es n7cleo do WordPress se 7teis aos desen!ol!edores de Temas e Plugins. %nto= este artigo lista a maioria das fun@es n7cleo= e&cluindo as Template Tags. "o final da p-gina= tem uma seo listando outros recursos para se encontrar informa@es so+re as fun@es do WordPress. "lm dessas informa@es= o WordPress p*pdoc site detal*a todas as fun@es do WordPress por !ers@es desde a :. ./.

Post9 P,gina9 Ane#o e @ooAmarAs


Posts getZc*ildren getZe&tended getZpost getZpostZancestors getZpostZmimeZt<pe getZpostZstatus getZpostZt<pe getZposts isZpost isZsingle isZsticB< FpZgetZrecentZposts FpZgetZsingleZpost InseroK1emoo de Post FpZdeleteZpost FpZinsertZpost FpZpu+lis*Zpost FpZupdateZpost P-ginas getZallZpageZids getZpage getZpageZ+<Zpat* getZpageZ+<Ztitle getZpageZc*ildren getZpageZ*ierarc*< getZpageZuri getZpages isZpage pageZuriZinde& FpZlistZpages

Campos Personali#ados 2postmeta4 addZpostZmeta deleteZpostZmeta getZpostZcustom getZpostZcustomZBe<s getZpostZcustomZ!alues getZpostZmeta updateZpostZmeta "ne&os getZattac*edZfile isZattac*ment isZlocalZattac*ment updateZattac*edZfile FpZattac*mentZisZimage FpZinsertZattac*ment FpZdeleteZattac*ment FpZgetZattac*mentZimage FpZgetZattac*mentZimageZsrc FpZgetZattac*mentZmetadata FpZgetZattac*mentZt*um+Zfile FpZgetZattac*mentZt*um+Zurl FpZgetZattac*mentZurl FpZc*ecBZforZc*angedZslugs FpZcountZposts FpZmimeZt<peZicon FpZupdateZattac*mentZmetadata AooBmarBs getZ+ooBmarB getZ+ooBmarBs FpZlistZ+ooBmarBs Outros addZmetaZ+o& getZt*eZI.

getZt*eZaut*or getZt*eZcontent FpZgetZpostZcategories FpZsetZpostZcategories FpZtrimZe&cerpt

Bsu,rios e Autores
Csu-rios e "utores aut*Zredirect emailZe&ists getZcurrentuserinfo getZprofile getZuserdata getZuserdata+<login getZusernumposts setZcurrentZuser userZpassZoB usernameZe&ists !alidateZusername FpZgetZcurrentZuser FpZsetZcurrentZuser Cser meta deleteZusermeta getZusermeta updateZusermeta InseroK1emoo de Csu-rios FpZcreateZuser FpZdeleteZuser FpZinsertZuser FpZupdateZuser 6ogin K 6ogout isZuserZloggedZin FpZsignon FpZlogout

Categorias9 tags e ta#onomia


Categorias catZisZancestorZof getZallZcategor<Zids getZcatZI. getZcatZname getZcategories getZcategor< getZcategor<Z+<Zpat* getZcategor<Z+<Zslug getZcategor<ZlinB getZcategor<Zparents getZt*eZcategor< inZcategor< isZcategor< Criao de Categorias FpZcreateZcategor< FpZinsertZcategor< Tags getZtag getZtagZlinB getZtags getZt*eZtagZlist getZt*eZtags isZtag Ta&onomia getZterm getZt*eZtermZlist getZtermZ+< getZtermZc*ildren getZterms isZta&onom< isZta&onom<Z*ierarc*ical isZterm registerZta&onom< FpZgetZo+?ectZterms FpZinsertZterm FpZupdateZterm

=eeds
+loginfoZrss commentZaut*orZrss commentZlinB commentZte&tZrss doZfeed doZfeedZatom doZfeedZrdf doZfeedZrss doZfeedZrss: fetc*Zrss getZaut*orZfeedZlinB getZ+loginfoZrss getZcategor<ZfeedZlinB getZcommentZlinB getZcommentZaut*orZrss getZpostZcommentsZfeedZlinB

getZrss getZsearc*ZcommentsZfeedZlinB getZsearc*ZfeedZlinB getZt*eZcategor<Zrss getZt*eZtitleZrss permalinBZsingleZrss postZcommentsZfeedZlinB rssZenclosure t*eZtitleZrss t*eZcategor<Zrss t*eZcontentZrss t*eZe&cerptZrss FpZrss

FpZupdateZcomment FpZupdateZcommentZcount

A<es9 =iltros e Plugins


Dilters addZfilter appl<Zfilters mergeZfilters remo!eZfilter "ctions addZaction didZaction doZaction doZactionZrefZarra< remo!eZaction Plugins pluginZ+asename registerZacti!ationZ*ooB registerZdeacti!ationZ*ooB registerZsetting settingsZfields unregisterZsetting ;*ortcodes addZs*ortcode doZs*ortcode doZs*ortcodeZtag getZs*ortcodeZrege& remo!eZs*ortcode remo!eZallZs*ortcodes s*ortcodeZatts s*ortcodeZparseZatts stripZs*ortcodes

Coment,rios9 Ping9 e TracA+acA


addZping c*ecBZcomment disco!erZping+acBZser!erZuri doZallZpings doZenclose doZtracB+acBs genericZping getZappro!edZcomments getZcomment getZcomments getZenclosed getZlastcommentmodified getZpung getZtoZping ne&tZcommentsZlinB paginateZcommentsZlinBs ping+acB pre!iousZcommentsZlinB pri!ac<ZpingZfilter saniti#eZcommentZcooBies tracB+acB tracB+acBZurlZlist Fe+logZping FpZalloFZcomment FpZdeleteZcomment FpZfilterZcomment FpZgetZcommentZstatus FpZgetZcurrentZcommenter FpZinsertZcomment FpZneFZcomment FpZsetZcommentZstatus FpZt*rottleZcommentZflood

-elacionadas a Temas
Dun@es de Incluso commentsZtemplate getZfooter getZ*eader getZside+ar getZsearc*Zform Outras Dun@es addZcustomZimageZ*eader getZ404Ztemplate getZarc*i!eZtemplate getZattac*mentZtemplate getZaut*orZtemplate

getZcategor<Ztemplate getZcommentsZpopupZtemplate getZcurrentZt*eme getZdateZtemplate getZ*eaderZimage getZ*eaderZte&tcolor getZ*omeZtemplate getZlocaleZst<les*eetZuri getZpageZtemplate getZpagedZtemplate getZquer<Ztemplate getZsearc*Ztemplate getZsingleZtemplate getZst<les*eet getZst<les*eetZdirector< getZst<les*eetZdirector<Zuri getZst<les*eetZuri getZtemplate getZtemplateZdirector< getZtemplateZdirector<Zuri getZt*eme getZt*emeZdata getZt*emeZmod getZt*emeZroot getZt*emeZrootZuri getZt*emes *eaderZimage loadZtemplate localeZst<les*eet pre!ieFZt*eme pre!ieFZt*emeZo+Zfilter pre!ieFZt*emeZo+ZfilterZcall+acB setZt*emeZmod sFitc*Zt*eme !alidateZcurrentZt*eme

=ormatao
addZmagicZquotes addslas*esZgpc antispam+ot attri+uteZescape +acBslas*it +alanceTags cleanZpre cleanZurl con!ertZc*ars con!ertZsmilies

ent:ncr escZattr forceZ+alanceZtags formatZtoZedit formatZtoZpost funB<Z?a!ascriptZfi& *tmlentities: isZemail ?sZescape maBeZclicBa+le popuplinBs remo!eZaccents saniti#eZemail saniti#eZfileZname saniti#eZuser saniti#eZtitle saniti#eZtitleZFit*Zdas*es seemsZutf' stripslas*esZdeep trailingslas*it untrailingslas*it utf'ZuriZencode Fpautop Fpte&turi#e FpZfilterZBses FpZfilterZpostZBses FpZfilterZno*tmlZBses FpZisoZdescram+ler FpZBses FpZBsesZarra<Zlc FpZBsesZattr FpZBsesZ+adZprotocol FpZBsesZ+adZprotocolZonce FpZBsesZ+adZprotocolZonce: FpZBsesZc*ecBZattrZ!al FpZBsesZdecodeZentities FpZBsesZ*air FpZBsesZ*ooB FpZBsesZ*tmlZerror FpZBsesZ?sZentities FpZBsesZnoZnull FpZBsesZnormali#eZentities FpZBsesZnormali#eZentities: FpZBsesZsplit FpZBsesZsplit: FpZBsesZstripslas*es FpZBsesZ!ersion

FpZmaBeZlinBZrelati!e FpZrelZnofolloF FpZric*editZpre FpZspecialc*ars #eroise

Diversas
Dun@es de .ataK(ora currentZtime dateZi/'n getZcalendar getZdateZfromZgmt getZlastpostdate getZlastpostmodified getZda<ZlinB getZgmtZfromZdate getZmont*ZlinB getZt*eZtime getZFeeBstartend getZ<earZlinB *umanZtimeZdiff isZneFZda< iso' 0/Ztime#oneZtoZoffset iso' 0/ZtoZdatetime m<sql:date ;eriali#ao isZseriali#ed isZseriali#edZstring ma<+eZseriali#e ma<+eZunseriali#e Op@es addZoption deleteZoption formZoption getZalloptions getZuserZoption getZoption updateZoption updateZuserZoption a)61PC &mlrpcZgetpostcategor< &mlrpcZgetposttitle &mlrpcZremo!epostdata userZpassZoB 6ocali#ao ZZ Ze

Zngette&t escZattrZe getZlocale loadZdefaultZte&tdomain loadZpluginZte&tdomain loadZte&tdomain loadZt*emeZte&tdomain Cron 2"gendamento4 spaFnZcron FpZclearZsc*eduledZ*ooB FpZcron FpZgetZsc*edule FpZgetZsc*edules FpZne&tZsc*eduled FpZresc*eduleZe!ent FpZsc*eduleZe!ent FpZsc*eduleZsingleZe!ent FpZunsc*eduleZe!ent .i!ersas addZquer<Zarg +oolZfromZ<n cac*eZ?a!ascriptZ*eaders c*ecBZadminZreferer c*ecBZa?a&Zreferer doZro+ots getZ+loginfo getZnumZqueries isZ+logZinstalled maBeZurlZfootnote nocac*eZ*eaders remo!eZquer<Zarg statusZ*eader Fp FpZc*ecBZfilet<pe FpZclearcooBie FpZcreateZnonce FpZdie FpZe&plainZnonce FpZgetZcooBieZlogin FpZgetZ*ttpZ*eaders FpZgetZoriginalZreferer FpZgetZreferer FpZ*as* FpZmail FpZmBdirZp FpZneFZuserZnotification FpZnonceZa<s

FpZnonceZfield FpZnonceZurl FpZnotif<Zmoderator FpZnotif<Zpostaut*or FpZoriginalZrefererZfield FpZredirect FpZrefererZfield

FpZremoteZfopen FpZsalt FpZsetcooBie FpZuploadZ+its FpZuploadZdir FpZ!erif<Znonce

-efer:ncia de A<es
-equisi<es tpicas
mupluginsZloaded loadZte&tdomain updateZoption pluginsZloaded loadZte&tdomain saniti#eZcommentZcooBies setupZt*eme loadZte&tdomain aut*ZcooBieZmalformed setZcurrentZuser init FidgetsZinit loadZte&tdomain parseZrequest sendZ*eaders preZgetZposts postsZselection Fp templateZredirect getZ*eader bfirst printed output to t*e +roFserc FpZ*ead FpZenqueueZscripts FpZprintZst<les FpZprintZscripts loopZstart t*eZpost loopZend getZfooter FpZfooter FpZprintZfooterZscripts parseZrequest sendZ*eaders adminZ*ead adminZfooter

Posts9 p,ginas9 ane#os e categorias


addZattac*ment addZcategor< cleanZpostZcac*e createZcategor< deleteZattac*ment deleteZcategor< deleteZpost deletedZpost editZattac*ment editZcategor< editZpost preZpostZupdate pri!ateZtoZpu+lis* pu+lis*Zpage pu+lis*Zp*one pu+lis*Zpost sa!eZpost FpZinsertZpost &mlrpcZpu+lis*Zpost

Coment,rios9 pings e tracA+acAs


commentZclosed commentZidZnotZfound commentZfloodZtrigger commentZonZdraft commentZpost editZcomment deleteZcomment . ping+acBZpost preZping tracB+acBZpost FpZ+lacBlistZc*ecB FpZsetZcommentZstatus

P,ginas administrativas
pluginsZloaded saniti#eZcommentZcooBies aut*ZcooBieZmalformed aut*ZcooBieZ!alid setZcurrentZuser init adminZinit

2inAs
addZlinB deleteZlinB editZlinB

=eeds
atomZentr< atomZ*ead atomZns commentrss:Zitem doZfeedZ2feed4 rdfZ*eader rdfZitem rdfZns rssZ*ead rssZitem rss:Z*ead rss:Zitem rss:Zns

Templates
commentZform doZro+ots doZro+otst&t getZfooter getZ*eader sFitc*Zt*eme templateZredirect FpZfooter FpZ*ead FpZmeta FpZprintZscripts

Administrao
acti!ateZ2plugin file name4 acti!it<Z+o&Zend addZcategor<ZformZpre adminZ*ead adminZinit adminZfooter adminZprintZscripts adminZprintZst<les c*ecBZpassFords d+&ZpageZad!anced d+&ZpageZside+ar

d+&ZpostZad!anced d+&ZpostZside+ar deacti!ateZ2plugin file name4 deleteZuser editZcategor<Zform editZcategor<ZformZpre editZtagZform editZtagZformZpre editZformZad!anced editZpageZform editZuserZprofile loadI2page4 loginZform loginZ*ead lostZpassFord lostpassFordZform lostpassFordZpost manageZlinBZcustomZcolumn manageZpostsZcustomZcolumn manageZpagesZcustomZcolumn passFordZreset personalZoptionsZupdate pluginsZloaded profileZpersonalZoptions profileZupdate registerZform registerZpost restrictZmanageZposts retrie!eZpassFord setZcurrentZuser s*oFZuserZprofile simpleZeditZform updateZoptionZ2optionZname4 uploadZfilesZ2ta+4 userZregister FpZa?a&Z2action4 FpZaut*enticate FpZlogin FpZlogout

Avanado
adminZmenu adminZnotices +logZpri!ac<Zselector c*ecBZadminZreferer c*ecBZa?a&Zreferer generateZreFriteZrules

init loopZend loopZstart parseZquer< parseZrequest

preZgetZposts saniti#eZcommentZcooBies sendZ*eaders s*utdoFn Fp

Você também pode gostar