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.......................................................................................................................................... 6
Como instalar novos temas.....................................................................................................6
Adicionando novos temas utilizando o Painel de Administrao.............................................7
Arquivos de um tema.............................................................................................................. 7
A idia geral ........................................................................................................................... 7
Exemplos ............................................................................................................................... 8
A Hierarquia de Modelos em detalhe......................................................................................8
Exibir Home page............................................................................................................... 9
Exibir Postagem Individualmente........................................................................................9
Exibir Pgina...................................................................................................................... 9
Mostrar Categoria............................................................................................................... 9
Mostrar Tag........................................................................................................................ 9
Custom Post Tipos ............................................................................................................ 9
Taxonomias Personalizadas...............................................................................................9
Mostrar Dados de Autor....................................................................................................10
Arquivo por Data ..............................................................................................................10
Exibir Resultados da Pesquisa.........................................................................................10
Exibir pgina 404 (No Encontrado) ................................................................................10
Exibir Anexos.................................................................................................................... 10
Referenciando arquivos em templates..................................................................................10
Ganchos para Plugins...........................................................................................................10
Template tags....................................................................................................................... 11
O Loop.................................................................................................................................. 11
Exemplos de loop..................................................................................................................11
Loop bsico com contedo:..............................................................................................11
Excluir posts da categoria 3:.............................................................................................12
Mostra uma lista de posts duas vezes:.............................................................................13
Pega os ltimos 15 posts de uma categoria qualquer......................................................13
Se necessrio manter a query original, voc pode criar um novo objeto:......................13
Plugins....................................................................................................................................... 14
Estrutura............................................................................................................................... 14
API de Plugins....................................................................................................................... 14
Referncia de funes............................................................................................................... 17
Post, Pgina, Anexo e Bookmarks........................................................................................17
Categorias, tags e taxonomia................................................................................................18
Usurios e Autores................................................................................................................18
Feeds.................................................................................................................................... 18
Comentrios, Ping, e Trackback...........................................................................................19
Aes, Filtros e Plugins.........................................................................................................19
Relacionadas a Temas..........................................................................................................19
Formatao........................................................................................................................... 20
Diversas................................................................................................................................ 21
Referncia de Aes.................................................................................................................23
Requisies tpicas...............................................................................................................23
Pginas administrativas........................................................................................................23
Posts, pginas, anexos e categorias.....................................................................................23
Comentrios, pings e trackbacks..........................................................................................23
Links...................................................................................................................................... 24
Feeds.................................................................................................................................... 24
Templates............................................................................................................................. 24
Administrao....................................................................................................................... 24
Avanado.............................................................................................................................. 24
O que o Wordpress
O WordPress uma plataforma semntica de vanguarda para publicao pessoal, com foco na
esttica, nos Padres Web e na usabilidade. O WordPress ao mesmo tempo um software livre e
gratuito. Em outras palavras, o WordPress o que voc usa quando voc quer trabalhar e no
lutar com seu software de publicao de blogs.

Caracterticas do Wordpress
WordPress uma poderosa plataforma de publicao pessoal que vem com um grande conjunto
de caractersticas concebidas para tornar sua experincia como editor na Internet, fcil, agradvel
e o mais atraente possvel.
Instalado localmente Senha de proteo
Core Porttil Mensagem para o futuro
UTC amigvel Postagens Multi-paginada
Gesto de usurios Upload de imagens e arquivos
Perfis de usurio Categorias
Fcil instalao e atualizao Emoticons
Gerao dinmica de pginas Salvar rascunhos
Internacionalizao e Localizao Visualizar contedo no publicado
Feeds Ferramentas Desktop Disponveis
Links Permanentes sem "Cdigos Blog por e-mail
estranhos" Formatao
Comunicao entre-blogs Arquivamento
Template Tags Pesquisa Internat
Temas Importao/Exportao
Plugins

Instalando o Wordpress
O Wordpress um dos CMSs mais fceis de se utilizar, e sua instalao no poderia ser muito
diferente: trata-se de um procedimento simples e rpido que, na maioria das vezes, leva alguns
poucos minutos para ser finalizado. Isto, claro, supondo-se que o usurio j possua alguma
experincia com sistemas similares, e tambm com a criao de bancos de dados, definio de
usurios, senhas, upload de arquivos, etc.
No nada complicado, mas acredito que a presena de um tutorial bsico ser interessante
aqui no PluginMania, voltado principalmente aos usurios que esto iniciando o uso do
Wordpress. Procurei abordar todos os procedimentos necessrios instalao, desde a criao
dos bancos de dados MySQL at o primeiro login do usurio administrador. Aqui vamos ns,
portanto.

Pacote de instalao
Voc pode baixar do site internacional, ou da comunidade brasileira.
http://wordpress.org

Ou do site da comunidade brasileira, que j vem em portugus:

http://br.wordpress.org

Aps o download, efetue a descompactao do arquivo .ZIP obtido, e voc obter uma pasta
chamada wordpress, com uma srie de arquivos e tambm 3 subpastas, conforme abaixo:
wp-admin: arquivos de administrao (Painel, instalador, ...)
wp-content: arquivos do website (Uploads, temas, plugins, cache...)
wp-includes: bibliotecas e classes (jQuery, SimplePie, FCKEditor, Prototype...)

Configurao
Este um procedimento que poder variar de acordo com o sistema operacional, painel de
controle e recursos disponibilizados no plano de hospedagem que voc assinou. Em alguns
painis de controle, como por exemplo o Cpanel, a criao de bases de dados e usurios, e
tambm a definio de acessos, pode ser feita atravs da opo MySQL Databases (bases de
dados MySQL), localizada dentro do grupo de opes Databases (bases de dados).
Algumas empresas de hospedagem trabalham com outros painis de controle, onde este
procedimento pode variar bastante, e existem at mesmo empresas que trabalham com painis
de controle prprios.
Ou seja, muito difcil encontrarmos um guia definitivo relativo a este ponto, mas vale ressaltar
que, independentemente do painel de controle, do sistema operacional ou at mesmo da empresa
de hospedagem que voc utiliza, o que voc precisa fazer o seguinte:
Criar uma base de dados MySQL;
Criar um usurio e definir uma senha para a base;
Disponibilizar para este usurio acesso completo base de dados recm criada.

Alguns painis de controle criam automaticamente o usurio e definem uma senha, outros no
permitem a definio de um nome para a base de dados que fornecida automaticamente. De
qualquer forma, aps os procedimentos acima voc ter em mos o nome da base de dados, o
usurio que acessar esta base de dados e a senha.
Utilizando um editor de textos qualquer, abra o arquivo wp-config-sample.php. O arquivo se
encontra da seguinte maneira:

define(DB_NAME, nomedoBD);
define(DB_USER, usuarioMySQL);
define(DB_PASSWORD, senha);
define(DB_HOST, localhost);

E voc dever alterar somente os seguintes dados:


nomedoBD: nome da base de dados;
usuarioMySQL: usurio com acesso base de dados;
senha: substitua pela senha do usurio com acesso base de dados;
localhost: geralmente este valor no precisa ser alterado, a no ser que o provedor de
hospedagem possua servidores diferentes para arquivos e base de dados;

Aps as alteraes acima, salve o arquivo com o seguinte nome: wp-config.php e acesse o
endereo do website. Acesse o endereo para logar:

http://www.seusite.com.br/wp-admin/

Temas
Fundamentalmente, o sistema de temas WordPress uma forma de "skin" do seu weblog. No
entanto, mais do que apenas uma "skin". Sem skin, implica que s o design de seu site
alterado. Temas WordPress podem oferecer muito mais controle sobre a aparncia e a
apresentao do material em seu site.
Os temas WordPress so uma coleo de arquivos que trabalham juntos para produzir uma
interface grfica com um design subjacente e unificador para um weblog. Estes arquivos so
chamados arquivos de modelo (template files). Um tema modifica a maneira como o site exibido,
sem modificar o software subjacente e os dados que ele gerencia.
Os temas podem incluir arquivos de modelos personalizados, arquivos de imagem (*.jpg, *.gif),
folhas de estilos (*.css), pginas personalizadas, bem como de quaisquer arquivos de cdigo
necessrio (*.php).
Os temas so um jogo totalmente novo. Vamos dizer que voc escreve muito sobre o futebol e
msica. Atravs do uso inovador do Loop WordPress e arquivos de modelo, voc pode
personalizar suas postagens de forma diferente, de acordo com a categoria de tais postagens.
Assim, suas postagens sobre futebol podem aparecer num fundo verde, e as postagens sobre
msica num fundo branco, por exemplo.
Com este poderoso controle sobre como diferentes pginas e categorias aparecem em seu site,
voc s estpa limitado pela sua imaginao.

Como instalar novos temas


Se o tema que voc est instalando fornece instrues, certifique-se de ler e seguir as instrues
para a instalao ser bem-sucedida. recomendvel que os desenvolvedores do tema ofeream
instrues de instalao para os seus prprios temas, pois os temas podem ter funcionalidade
opcionais ou especiais que podem requerer medidas a mais do que as etapas de instalao
discutidas aqui. Se o tema no funciona depois de seguir as instrues fornecidas, entre em
contato com o autor do tema para a ajuda.
Para adicionar um novo tema para sua instalao do WordPress, siga estas etapas bsicas:
1. Baixe o arquivo do tema e extraia os arquivos que ele contm. Pode ter necessidade de
preservar a estrutura de diretrios no arquivo quando extrair esses arquivos. Siga as
orientaes fornecidas pelo autor do tema.
2. Usando um cliente de FTP para enviar ao seu servidor web, crie um diretrio para conter o
seu tema no diretrio wp-content/themes fornecidos pelo WordPress. Por exemplo, um
tema chamado de "teste" devem ser enviado para wp-content/themes/test. Seu tema pode
ter este diretrio, como parte do arquivo.
3. Upload os arquivos para o novo diretrio no seu servidor.
4. Siga as instrues abaixo para selecionar o novo tema.

Adicionando novos temas utilizando o Painel de Administrao


Voc pode baixar temas diretamente para o seu blog, usando a opo Adicionar novo Temas no
sub-menu Aparncia.
1. Ir no Painel de Administrao.
2. Selecione Aparncia e ento Temas.
3. Selecione Adicionar Novo Tema
4. Use o sub-menu ou a pesquisa (se quiser marque opes de filtro) para localizar um tema
que voc gostaria de usar.
5. Clique no link Visualizar para visualizar o tema antes de fazer download e instalar.
6. Utilize o link Download no topo do sub-menu para fazer download do tema.

Arquivos de um tema
Seo obrigatria no arquivo style.css:

/*
Theme Name: Rose
Theme URI: the-theme's-homepage
Description: a-brief-description
Author: your-name
Author URI: your-URI
Template: use-this-to-define-a-parent-theme--optional
Version: a-number--optional
...
General comments/License Statement if any.
...
*/

De maneira bem minimalista, um tema composto de 2 arquivos bsicos e obrigatrios.


style.css
index.php
Os modelos WordPress se encaixam como peas de um quebra-cabea para gerar as pginas em
seu site. Alguns modelos so usados em todas as pginas da web (como oo cabealho e o
rodap, e estilos, por exemplo), enquanto outros so usados somente em condies especficas.
A pergunta a se fazer : Qual arquivo de modelo (s) o WordPress usar quando ele exibe um
certo tipo de pgina?

A idia geral
O WordPress utiliza o Query String - Informaes contidas no interior de cada link em seu site -
para decidir qual o modelo ou conjunto de modelos sero utilizados para exibir a pgina.
Primeiro, o WordPress partidas cadeia de consulta para todos os tipos de consulta - ou seja, ele
decide que tipo de pgina (uma pgina de busca, uma pgina da categoria, a home page, etc)
est sendo solicitado.
Os modelos so ento escolhidos - e o contedo da pgina web gerada - na ordem sugerida
pela hierarquia Template WordPress, dependendo do que modelos esto disponveis num
determinado Tema WordPress.
Os arquivos so estes:
style.css: Folha de estilo do tema. category.php: Listagem de posts de uma
obrigatria e deve conter todos os estilos categoria.
ou chamadas de outras folhas de estilo tag.php: Listagem de posts de um tag.
para o tema. taxonomy.php: Listagem de uma
index.php: O template principal. usado taxonomia qualquer.
para exibir qualquer contedo quando um author.php: Listagem de posts de um
template especfico no for encontrado. autor.
comments.php: Listagem de date.php: Listagem de um intervalo de
comentrios logo abaixo dos posts. data (ano, ms, dia).
comments-popup.php: Lista de popups archive.php: Usado de maneira
em uma nova janela aberta via generalista para category.php,
Javascript. author.php, e date.php.
home.php: A capa do site. search.php: Resultados de uma busca.
single.php: Um post sozinho. 404.php: Pgina de erro para contedo
page.php: Uma pgina. no encontrado.
Todos estes arquivos so usados para substituir o index.php quando encontrados de acordo com
os tags condicionais. Voc pode tornar estes arquivos ainda mais especficos variandos suas
derivaes de nome, ou mesmo alterando seu cdigo com expresses que usam os mesmos tags
condicionais.

Exemplos
Se o seu blog est em http://example.com/wp/ e um visitante clica em um link para uma pgina da
categoria como http://example.com/wp/category/your-cat/, WordPress procura por um modelo
arquivo no diretrio do tema atual que corresponde ao ID da categoria.
Se a categoria de identificao 4, o WordPress procura por um arquivo de modelo category-
4.php . Se estiver em falta, o WordPress procura por um arquivo de modelo genrico,
category.php .
Se este arquivo no existe o WordPress procura por um arquivo de modelo genrico, archive.php.
Se no exisitir, ento ele procura pelo arquivo principal, index.php .
Se um visitante vai para sua homepage na http://example.com/wp/, o WordPress primeiro
determina se h uma Pgina esttica. Se uma pgina esttica foi definida, o WordPress exibe
primeiro a pgina principal e depois esta pgina definida, de acordo com o modelo de hierarquia.
Se uma pgina esttica no foi definida, ento o WordPress procura por um arquivo home.php e o
usa para gerar a pgina solicitada.
Se no h arquivo home.php, o WordPress procura por um arquivo chamado index.php no
diretrio do tema ativo, e usa esse modelo para gerar a pgina.

A Hierarquia de Modelos em detalhe


O seguinte diagrama mostra quais arquivos de modelo so chamados para gerar uma pgina do
WordPress com base na hierarquia de Template WordPress.

As sees seguintes descrevem a ordem na qual os arquivos de modelo so chamados pelo


WordPress, para cada tipo de consulta.

Exibir Home page 4. archive.php


5. index.php
1. home.php
2. index.php
Mostrar Tag
Exibir Postagem Individualmente 1. tag-{slug}.php - Se o slug de uma tag for
especies, ento o Wordpress procurar
1. single.php
por tag-especies.php
2. index.php
2. tag-{id}.php - Se ID de uma tag for 6,
Exibir Pgina ento o Wordpress procurar por tag-
6.php
1. custom template - Se a pgina tem um 3. tag.php
modelo prprio definido. 4. archive.php
2. page-{slug}.php - Se o slug da pgina 5. index.php
sobre-mim, o WordPress will look to use
page-sobre-mim.php Custom Post Tipos
3. page-{id}.php - Se o ID de tal pgina 6,
1. single-{post_type}.php - Se o tipo de post
o WordPress procurar por page-6.php
for algum-post, ento o Wordpress
4. page.php
procurar por single-algum-post.php
5. index.php
2. single.php
Mostrar Categoria 3. index.php

1. category-{slug}.php - Se o slug de uma Taxonomias Personalizadas


categoria for dicas, ento o Wordpress
1. taxonomy-{taxonomy}-{term}.php - Se a
procurar por category-dicas.php
taxonomia for vertebrados , e o slug
2. category-{id}.php - Se o IDde uma
dessa taxonomia for primatas, o
categoria for 12, ento o Wordpress
WordPress procurar por taxonomy-
procurara por category-12.php
vertebrados-primatas.php
3. category.php
2. taxonomy-{taxonomy}.php - Se a Arquivo por Data
taxonomia for invertebrados, o
1. date.php
WordPress procurar por taxonomy-
2. archive.php
invertebrados.php
3. index.php
3. taxonomy.php
4. archive.php Exibir Resultados da Pesquisa
5. index.php
1. search.php
Mostrar Dados de Autor 2. index.php

1. author-{nicename}.php - Se o "nicename" Exibir pgina 404 (No Encontrado)


do autor for dianakc, o WordPress
procurar por author-dianakc.php 1. 404.php
2. author-{id}.php - Se o ID de um autor for 2. index.php
10, o WordPress procurar por author-
Exibir Anexos
10.php
3. author.php 1. MIME_type.php - qualquer tipo MIME
4. archive.php (image.php, video.php, audio.php,
5. index.php application.php ou qualquer outros).
2. attachment.php
3. single.php
4. index.php

Referenciando arquivos em templates


Ao chamar arquivos via HTML dentro dos templates, voc deve sempre cham-los com uma URL
completa, tais como: http://www.meusite.com.br/wp-content/uploads/2010/03/04/meuarquivo.ext.
Para facilitar reescritas de endereo e fazer com que o tema seja portvel, use a funo bloginfo.

<?php bloginfo('url'); ?>


<!-- resulta em http://www.meusite.com.br -->

<?php bloginfo('template_directory'); ?>


<!-- resulta em http://www.meusite.com.br/wp-
content/themes/meutema -->

Dentro do arquivos CSS no necessrio oferecer o endereo completo de imagens, uma vez
que elas sero sempre relativas folha de estilo.

h1 { background-image: url('images/my_background.jpg'); }

Ganchos para Plugins


Sempre inclua no seu tema chamadas para que o Wordpress e eventuais plugins possam saber o
que acontece durante o carregamento da pgina. Se um plugin insere JavaScript no final das
pginas, ele precisar do gancho wp_footer, por exemplo.

<?php
// Antes de fechar a tag <head>:
wp_head();

// Antes de fechar a tag <html>:


wp_footer();

?>

Template tags
Template Tags so utilizadas nos modelos do seu blog para exibir informaes de forma dinmica
ou personalizar seu blog, fornecendo as ferramentas para possibilitar a voc desfrutar ao mximo
das possibilidades de personalizao que o WordPress oferece. Abaixo est uma lista das tags
que esto disponveis no WordPress, classificadas por categoria de funo especfica.
Veja a referncia de funes.

O Loop
O loop a estrutura bsica do Wordpress. Assim chamado, ele recebe uma query string e executa
tudo o que est em seu interior, instanciando as variveis em um objeto que serve de referncia
para funes sintaxicamente comuns e fceis de se lembrar.
Comeamos verificando se existem posts chamados e instanciando as variveis, e terminamos
fechando os comandos PHP.

<?php if (have_posts()) : while (have_posts()): the_post(); ?


>

<!-- Aqui colocamos tudo que queremos que seja


feito com o contedo chamado. -->

<?php endwhile; else: ?>

<!-- Uma mensagem dizendo que nenhum contedo foi


encontrado. -->

<?php endif; ?>

Exemplos de loop

Loop bsico com contedo:

<!-- Comea o loop. -->


<?php if ( have_posts() ) : while ( have_posts() ) :
the_post(); ?>

<!-- Mostra o ttulo como um link para o post. -->


<h2>
<a href="<?php the_permalink() ?>" rel="bookmark"
title="Link para <?php the_title_attribute(); ?>">
<?php the_title(); ?>
</a>
</h2>

<!-- Mostra a data no formato: November 16th, 2009,


e faz um link para outros posts deste autor. -->
<small>
<?php the_time('F jS, Y') ?> por
<?php the_author_posts_link() ?>
</small>

<!-- Mostra o contedo dentro de uma caixa div. -->


<div class="entry">
<?php the_content(); ?>
</div>

<!-- Mostra uma chamada para os comentrios


<?php comments_popup_link(); ?>

<!-- Mostra uma lista separada por


vrgulas das categorias. -->
<p class="postmetadata">
Posted in <?php the_category(', '); ?>
</p>

<!-- Pra o loop. -->


<?php endwhile; else: ?>

<!-- Mostra uma mensagem caso nenhum


post tenha sido encontrado. -->
<p>Sorry, no posts matched your criteria.</p>

<!-- REALMENTE pra o loop. -->


<?php endif; ?>

Excluir posts da categoria 3:

<?php query_posts($query_string.'&cat=-3,-8'); ?>


<?php if ( have_posts() ) : while ( have_posts() ) :
the_post(); ?>

<!-- Repetio. -->

<?php endwhile; endif; ?>


Mostra uma lista de posts duas vezes:

<?php while (have_posts()): the_post();?>


<!-- Primeira vez. -->
<?php endwhile; ?>

<?php rewind_posts(); ?>

<?php while (have_posts()): the_post();?>


<!-- Segunda vez. -->
<?php endwhile; ?>

Pega os ltimos 15 posts de uma categoria qualquer.

<?php
query_posts('category_name=categoria_qualquer&posts_per_page=
15'); ?>
<?php while (have_posts()) : the_post(); ?>
<!-- Faz coisas com a categoria_qualquer. -->
<?php endwhile;?>

Se necessrio manter a query original, voc pode criar um novo objeto:

<!-- Salva a query original. $wp_query uma varivel global


definida pelo ambiente. -->

<?php $query_original = $wp_query; ?>

<!-- Faz uma query personalizada qualquer. -->


<?php $nova_query = new
WP_Query('category_name=categoria');?>

<?php while ($nova_query->have_posts()) :


$nova_query->the_post(); ?>
<!-- Faz qualquer coisa. -->
<?php endwhile; ?>

<!-- A funo query_posts sobreescreve a varivel global


$wp_query, que a query original. -->
<?php query_posts('category_name=outra_categoria'); ?>

<?php while (have_posts()) : the_post(); ?>


<!-- Faz qualquer coisa com a query construda. -->
<?php endwhile; ?>

<!-- Restora a varivel global $wp_query para a query


original. -->
<?php $wp_query = $query_original; ?>
Plugins
Um plugin para o Wordpress nada mais do que um adendo de cdigo capaz de interferir e
modificar suas funcionalidades. Isto deve ocorrer principalmente atravs da API de chamadas que
o core do Wordpress executa medida que desenvolve o processamento da pgina.
A facilidade desta categoria de desenvolvimento uma pea chave do sucesso do WordPress.
Para quase toda funcionalidade que se imagine, h um plugin.

Estrutura
Um plugin basicamente um arquivo PHP com um cabealho que ser usado para exibio na
pgina administrativa de plugins. Este arquivo pode ser bem simples ou pode chamar vrios
outros scripts, criar tabelas no banco de dados, e elaborar toda uma estrutura de dados prpria,
ficando bem complexo.
O seguinte modelo de cabealho usado para que o WordPress detecte um plugin colocado
dentro da pasta wp-content/plugins/. Sem este cabealho um plugin sequer pode ser ativado no
painel de administrao.

<?php
/*
Plugin Name: Nome do Plugin
Plugin URI: http://URI_do_plugin
Description: Descrio de 140 caracteres.
Version: Nmero de verso
Author: Nome do autor
Author URI: http://URI_do_autor
License: Um "slug" da licena, algo como GPL2
*/
?>

API de Plugins
O WordPress quando carregado pelos navegadores, para cada etapa deste carregamento faz
uma pequena verificao para checar se h algum plugin ou tema que pede para que algo seja
executado ali naquele momento. Neste caso, o que ser executado uma funo enganchada,
(e da o nome hook). Estas funes so chamadas por estruturas divididas em duas categorias,
de acordo com a sua funcionalidade:
Aes: eventos disparados em certos momentos durante a execuo;
Filtros: lanados no momento de gravao ou apresentao de texto;
Os arquivos dos plugins funcionam principalmente base de ganchos (hooks), e aqui muito
importante a fixao deste conceito.
Sucintamente, estas estruturas no so nada mais que verificadores durante o processamento
do Wordpress. Atravs de um gancho voc atrela determinada funo um evento, acabando por
executar esta funo quando este evento ocorrer no carregamento.
Para definir os ganchos voc pode se perguntar Em que momento devo fazer isso? para cada
ao e ento verificar a lista de ganchos de aes e filtros para achar qual lhe atende. Existem
aes imaginveis para qualquer situao do WordPress. D uma olhada na referncia de aes,
pois esta parte do desenvolvimento bem flexvel.
Por exemplo, se quisermos exibir um alerta em Javascript de que a pgina terminou de ser
carregada para toda e qualquer pgina de uma instalao, podemos fazer assim:

<?php
add_action ('wp_footer', 'exibe_alerta');
function exibe_alerta() {
?>
<script type=text/javascript>
alert(Pgina carregada!);
</script>
<?php
}
?>

Em bom portugus, add_action ('wp_footer', 'exibe_alerta') pede ao WordPress: Execute a


funo 'exibe_alerta' quando voc passar pela tag HTML </body>.
A ao wp_footer, simplesmente executa a funo especificada quando o <?php wp_footer(); ?
> for alcanado no tema. Obviamente, esta ao depende que o tema utilizado pela instalao do
WordPress atenda os padres de desenvolvimento requeridos, tais como colocar as funes
wp_footer no final do rodap e wp_head no final do cabealho.
Um outro exemplo uma gancho que notifique o administrador do site via e-mail a respeito de
todas as publicaes que os usurios de um site fazem.

<?php
add_action('publish_post', 'avisar_admin');
function avisar_admin($id) {
$p = get_post($i = $id);
$email = get_option('admin_email');
$assunto = Novo post: $p->post_title;
$conteudo = apply_filters('the_content', $p-
>post_content);
if (wp_mail ($email, $assunto, $conteudo))
return true;
return false;
}
?>

Este pequeno trecho de cdigo, embora com uma funcionalidade simples, assume o
conhecimento de algumas propriedades do WordPress. Vamos por partes.
Antes de mais nada registramos o que queremos fazer. A funo add_action ('publish_post',
'avisar_admin') registra que a funo avisar_admin deve ser lanada sempre um um post for
publicado. Esta ao passa o ID do post publicado para a funo especificada, o que obrigatrio
caso queiramos utilizar informaes deste post na funo.
A funo $p = get_post ($i = $id) retorna um objeto post, que so todas as informaes do post
especificado por $id, tais como o contedo, autor, data de publicao, etc. Com isso temos o
objeto em mos para utilizar onde queremos.
A funo get_option() consulta diversas opes centrais do blog, tais como o endereo, pasta de
uploads, ttulo e subttulo, etc. Aqui queremos o e-mail do administrador.
Colocamos no assunto uma descrio que envolva o ttulo do post publicado. O item post_title
do objeto $p este ttulo.
A funo apply_filters aplica o filtro do parmetro um ao parmetro dois. H um filtro padro do
WordPress chamado the_content, este filtro formata um texto para adequar-se ao contedo de
um post. Coisas em HTML como adicionar quebras de linha, abertura e fechamento de
pargrafos, ou correes de tags quebradas. Tambm adiciona molduras legendadas s fotos.
Enfim, aqui a usamos para formatar a mensagem que ser enviada por e-mail.
A funo wp_mail utiliza o recurso do servidor mais apropriado para o envio de correio eletrnico.
H plugins que usam esta funo para automatizar autenticaes SMTP, limpa de tags HTML, etc,
motivo pelo qual simplesmente no usado a mail(), do PHP.
Retorna portanto, verdadeiro se um e-mail foi enviado, ou falso caso haja falha. Assim o $email
receber uma $mensagem com o $assunto personalizado para qualquer publicao.
Referncia de funes
Os arquivos do WordPress definem vrias funes PHP teis. Algumas das funes, conhecidas
como Template Tags, foram definidas especialmente para uso nos Temas WordPress. Existem
tambm algumas funes relacionadas com aes e filtros (a Plugin API), que so portanto
usadas a princpio para desenvolvimento de Plugins. O resto usado para criar as
funcionalidades ncleo do WordPress.
Muitas das funes ncleo do WordPress se teis aos desenvolvedores de Temas e Plugins.
Ento, este artigo lista a maioria das funes ncleo, excluindo as Template Tags. Ao final da
pgina, tem uma seo listando outros recursos para se encontrar informaes sobre as funes
do WordPress. Alm dessas informaes, o WordPress phpdoc site detalha todas as funes do
WordPress por verses desde a 2.6.1.

Post, Pgina, Anexo e Bookmarks Campos Personalizados (postmeta)


add_post_meta
Posts delete_post_meta
get_children get_post_custom
get_extended get_post_custom_keys
get_post get_post_custom_values
get_post_ancestors get_post_meta
get_post_mime_type update_post_meta
get_post_status Anexos
get_post_type get_attached_file
get_posts is_attachment
is_post is_local_attachment
is_single update_attached_file
is_sticky wp_attachment_is_image
wp_get_recent_posts wp_insert_attachment
wp_get_single_post wp_delete_attachment
Insero/Remoo de Post wp_get_attachment_image
wp_delete_post wp_get_attachment_image_src
wp_insert_post wp_get_attachment_metadata
wp_publish_post wp_get_attachment_thumb_file
wp_update_post wp_get_attachment_thumb_url
Pginas wp_get_attachment_url
get_all_page_ids wp_check_for_changed_slugs
get_page wp_count_posts
get_page_by_path wp_mime_type_icon
get_page_by_title wp_update_attachment_metadata
get_page_children Bookmarks
get_page_hierarchy get_bookmark
get_page_uri get_bookmarks
get_pages wp_list_bookmarks
is_page Outros
page_uri_index add_meta_box
wp_list_pages get_the_ID
get_the_author Usurios e Autores
get_the_content
wp_get_post_categories Usurios e Autores
wp_set_post_categories auth_redirect
wp_trim_excerpt email_exists
get_currentuserinfo
get_profile
Categorias, tags e taxonomia get_userdata
get_userdatabylogin
Categorias get_usernumposts
cat_is_ancestor_of set_current_user
get_all_category_ids user_pass_ok
get_cat_ID username_exists
get_cat_name validate_username
get_categories wp_get_current_user
get_category wp_set_current_user
get_category_by_path User meta
get_category_by_slug delete_usermeta
get_category_link get_usermeta
get_category_parents update_usermeta
get_the_category Insero/Remoo de Usurios
in_category wp_create_user
is_category wp_delete_user
Criao de Categorias wp_insert_user
wp_create_category wp_update_user
wp_insert_category Login / Logout
Tags is_user_logged_in
get_tag wp_signon
get_tag_link wp_logout
get_tags
get_the_tag_list Feeds
get_the_tags
is_tag bloginfo_rss
Taxonomia comment_author_rss
get_term comment_link
get_the_term_list comment_text_rss
get_term_by do_feed
get_term_children do_feed_atom
get_terms do_feed_rdf
is_taxonomy do_feed_rss
is_taxonomy_hierarchical do_feed_rss2
is_term fetch_rss
register_taxonomy get_author_feed_link
wp_get_object_terms get_bloginfo_rss
wp_insert_term get_category_feed_link
wp_update_term get_comment_link
get_comment_author_rss
get_post_comments_feed_link
get_rss wp_update_comment
get_search_comments_feed_link wp_update_comment_count
get_search_feed_link
get_the_category_rss Aes, Filtros e Plugins
get_the_title_rss
Filters
permalink_single_rss
add_filter
post_comments_feed_link
apply_filters
rss_enclosure
merge_filters
the_title_rss
remove_filter
the_category_rss
Actions
the_content_rss
add_action
the_excerpt_rss
did_action
wp_rss
do_action
do_action_ref_array
Comentrios, Ping, e Trackback remove_action
add_ping Plugins
check_comment plugin_basename
discover_pingback_server_uri register_activation_hook
do_all_pings register_deactivation_hook
do_enclose register_setting
do_trackbacks settings_fields
generic_ping unregister_setting
get_approved_comments Shortcodes
get_comment add_shortcode
get_comments do_shortcode
get_enclosed do_shortcode_tag
get_lastcommentmodified get_shortcode_regex
get_pung remove_shortcode
get_to_ping remove_all_shortcodes
next_comments_link shortcode_atts
paginate_comments_links shortcode_parse_atts
pingback strip_shortcodes
previous_comments_link
privacy_ping_filter Relacionadas a Temas
sanitize_comment_cookies
Funes de Incluso
trackback
comments_template
trackback_url_list
get_footer
weblog_ping
get_header
wp_allow_comment
get_sidebar
wp_delete_comment
get_search_form
wp_filter_comment
Outras Funes
wp_get_comment_status
add_custom_image_header
wp_get_current_commenter
get_404_template
wp_insert_comment
get_archive_template
wp_new_comment
get_attachment_template
wp_set_comment_status
get_author_template
wp_throttle_comment_flood
get_category_template ent2ncr
get_comments_popup_template esc_attr
get_current_theme force_balance_tags
get_date_template format_to_edit
get_header_image format_to_post
get_header_textcolor funky_javascript_fix
get_home_template htmlentities2
get_locale_stylesheet_uri is_email
get_page_template js_escape
get_paged_template make_clickable
get_query_template popuplinks
get_search_template remove_accents
get_single_template sanitize_email
get_stylesheet sanitize_file_name
get_stylesheet_directory sanitize_user
get_stylesheet_directory_uri sanitize_title
get_stylesheet_uri sanitize_title_with_dashes
get_template seems_utf8
get_template_directory stripslashes_deep
get_template_directory_uri trailingslashit
get_theme untrailingslashit
get_theme_data utf8_uri_encode
get_theme_mod wpautop
get_theme_root wptexturize
get_theme_root_uri wp_filter_kses
get_themes wp_filter_post_kses
header_image wp_filter_nohtml_kses
load_template wp_iso_descrambler
locale_stylesheet wp_kses
preview_theme wp_kses_array_lc
preview_theme_ob_filter wp_kses_attr
preview_theme_ob_filter_callback wp_kses_bad_protocol
set_theme_mod wp_kses_bad_protocol_once
switch_theme wp_kses_bad_protocol_once2
validate_current_theme wp_kses_check_attr_val
wp_kses_decode_entities
Formatao wp_kses_hair
wp_kses_hook
add_magic_quotes
wp_kses_html_error
addslashes_gpc
wp_kses_js_entities
antispambot
wp_kses_no_null
attribute_escape
wp_kses_normalize_entities
backslashit
wp_kses_normalize_entities2
balanceTags
wp_kses_split
clean_pre
wp_kses_split2
clean_url
wp_kses_stripslashes
convert_chars
wp_kses_version
convert_smilies
wp_make_link_relative _ngettext
wp_rel_nofollow esc_attr_e
wp_richedit_pre get_locale
wp_specialchars load_default_textdomain
zeroise load_plugin_textdomain
load_textdomain
Diversas load_theme_textdomain
Cron (Agendamento)
Funes de Data/Hora
spawn_cron
current_time
wp_clear_scheduled_hook
date_i18n
wp_cron
get_calendar
wp_get_schedule
get_date_from_gmt
wp_get_schedules
get_lastpostdate
wp_next_scheduled
get_lastpostmodified
wp_reschedule_event
get_day_link
wp_schedule_event
get_gmt_from_date
wp_schedule_single_event
get_month_link
wp_unschedule_event
get_the_time
Diversas
get_weekstartend
add_query_arg
get_year_link
bool_from_yn
human_time_diff
cache_javascript_headers
is_new_day
check_admin_referer
iso8601_timezone_to_offset
check_ajax_referer
iso8601_to_datetime
do_robots
mysql2date
get_bloginfo
Serializao
get_num_queries
is_serialized
is_blog_installed
is_serialized_string
make_url_footnote
maybe_serialize
nocache_headers
maybe_unserialize
remove_query_arg
Opes
status_header
add_option
wp
delete_option
wp_check_filetype
form_option
wp_clearcookie
get_alloptions
wp_create_nonce
get_user_option
wp_die
get_option
wp_explain_nonce
update_option
wp_get_cookie_login
update_user_option
wp_get_http_headers
XMLRPC
wp_get_original_referer
xmlrpc_getpostcategory
wp_get_referer
xmlrpc_getposttitle
wp_hash
xmlrpc_removepostdata
wp_mail
user_pass_ok
wp_mkdir_p
Localizao
wp_new_user_notification
__
wp_nonce_ays
_e
wp_nonce_field wp_remote_fopen
wp_nonce_url wp_salt
wp_notify_moderator wp_setcookie
wp_notify_postauthor wp_upload_bits
wp_original_referer_field wp_upload_dir
wp_redirect wp_verify_nonce
wp_referer_field
Referncia de Aes

Requisies tpicas parse_request


send_headers
muplugins_loaded admin_head
load_textdomain admin_footer
update_option
plugins_loaded Posts, pginas, anexos e
load_textdomain
sanitize_comment_cookies
categorias
setup_theme add_attachment
load_textdomain add_category
auth_cookie_malformed clean_post_cache
set_current_user create_category
init delete_attachment
widgets_init delete_category
load_textdomain delete_post
parse_request deleted_post
send_headers edit_attachment
pre_get_posts edit_category
posts_selection edit_post
wp pre_post_update
template_redirect private_to_publish
get_header [first printed output to the publish_page
browser] publish_phone
wp_head publish_post
wp_enqueue_scripts save_post
wp_print_styles wp_insert_post
wp_print_scripts xmlrpc_publish_post
loop_start
the_post Comentrios, pings e trackbacks
loop_end
comment_closed
get_footer
comment_id_not_found
wp_footer
comment_flood_trigger
wp_print_footer_scripts
comment_on_draft
comment_post
edit_comment
Pginas administrativas delete_comment .
plugins_loaded pingback_post
sanitize_comment_cookies pre_ping
auth_cookie_malformed trackback_post
auth_cookie_valid wp_blacklist_check
set_current_user wp_set_comment_status
init
admin_init
Links dbx_post_advanced
dbx_post_sidebar
add_link deactivate_(plugin file name)
delete_link delete_user
edit_link edit_category_form
edit_category_form_pre
Feeds edit_tag_form
atom_entry edit_tag_form_pre
atom_head edit_form_advanced
atom_ns edit_page_form
commentrss2_item edit_user_profile
do_feed_(feed) load-(page)
rdf_header login_form
rdf_item login_head
rdf_ns lost_password
rss_head lostpassword_form
rss_item lostpassword_post
rss2_head manage_link_custom_column
rss2_item manage_posts_custom_column
rss2_ns manage_pages_custom_column
password_reset
Templates personal_options_update
plugins_loaded
comment_form
profile_personal_options
do_robots
profile_update
do_robotstxt
register_form
get_footer
register_post
get_header
restrict_manage_posts
switch_theme
retrieve_password
template_redirect
set_current_user
wp_footer
show_user_profile
wp_head
simple_edit_form
wp_meta
update_option_(option_name)
wp_print_scripts
upload_files_(tab)
user_register
Administrao wp_ajax_(action)
activate_(plugin file name) wp_authenticate
activity_box_end wp_login
add_category_form_pre wp_logout
admin_head
admin_init Avanado
admin_footer
admin_menu
admin_print_scripts
admin_notices
admin_print_styles
blog_privacy_selector
check_passwords
check_admin_referer
dbx_page_advanced
check_ajax_referer
dbx_page_sidebar
generate_rewrite_rules
init pre_get_posts
loop_end sanitize_comment_cookies
loop_start send_headers
parse_query shutdown
parse_request wp

Você também pode gostar