<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Comunidade WordPress-BR &#187; avançado</title>
	<atom:link href="http://wp-brasil.org/tag/avancado/feed" rel="self" type="application/rss+xml" />
	<link>http://wp-brasil.org</link>
	<description>Site da Comunidade Brasileira de WordPress</description>
	<lastBuildDate>Sat, 28 Jan 2012 21:05:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Como chamar arquivos css ou js no seu tema ou plugin</title>
		<link>http://wp-brasil.org/dicas-e-tutoriais/como-chamar-arquivos-css-ou-js-no-seu-tema-ou-plugin</link>
		<comments>http://wp-brasil.org/dicas-e-tutoriais/como-chamar-arquivos-css-ou-js-no-seu-tema-ou-plugin#comments</comments>
		<pubDate>Thu, 19 Feb 2009 18:43:51 +0000</pubDate>
		<dc:creator>Leo Germani</dc:creator>
				<category><![CDATA[Dicas e Tutoriais]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[avançado]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://wp-brasil.org/novo/?p=58</guid>
		<description><![CDATA[Muitas vezes, quando fazemos um tema ou um plugin, precisamos carregar folhas de estilo ou arquivos javascript adicionais. Neste post, vou mostrar a maneira mais legal, charmosa e elegante de se fazer isso. Estrutura básica Antes de mais nada, vamos criar a função que vai carregar nosso javascript e adicioná-la ao hook correto do WordPress: [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_572" class="wp-caption alignnone" style="width: 264px"><a href="http://wp-brasil.org/wp-content/uploads/2009/02/chamando_javascript.png"><img class="size-full wp-image-572" title="chamando_javascript" src="http://wp-brasil.org/wp-content/uploads/2009/02/chamando_javascript.png" alt="Ilustração por Cátia Kitahara" width="254" height="380" /></a><p class="wp-caption-text">Ilustração por Cátia Kitahara</p></div>
<p>Muitas vezes, quando fazemos um tema ou um plugin, precisamos carregar folhas de estilo ou arquivos javascript adicionais. Neste post, vou mostrar a maneira mais legal, charmosa e elegante de se fazer isso.</p>
<h4 class="no-clear">Estrutura básica</h4>
<p>Antes de mais nada, vamos criar a função que vai carregar nosso javascript e adicioná-la ao hook correto do WordPress:</p>
<pre class="brush: php">
function meuPlugin_addJS() {
// aqui vou carregar meu javascript
}

add_action(&#039;wp_print_scripts&#039;, &#039;meuPlugin_addJS&#039;);
</pre>
<p>Agora, sempre que o WordPress imprimir as chamadas a arquivos javascript, vai rodar a sua função. Vamos ver como isso vai funcionar.</p>
<h4>Usando a função wp_enqueue_script</h4>
<p>A função &#8220;wp_enqueue_script()&#8221; serve para colocar o script em uma fila de carregamento. Ela é extremamente útil para evitar que um script seja carregado mais de uma vez e também para carregar todas as dependências na ordem certa. Vamos ver um exemplo que usa todos os parâmetros desta função:</p>
<pre class="brush: php">
wp_enqueue_script(&#039;meu_script&#039;, &#039;http://meusite.com/wp-content/plugins/meuplugin/script.js&#039;, array(&#039;jquery&#039;), &#039;1.0&#039;);
</pre>
<p>Esta função está colocando o seu script na fila para ser carregado, dizendo o seguinte</p>
<ul>
<li>ele se chama &#8216;meu_script&#8217;</li>
<li>ele está em http://meusite.com/wp-content/plugins/meuplugin/script.js</li>
<li>ele depende do jquery</li>
<li>esta é a versão 1.0 do &#8216;meu_script&#8217;</li>
</ul>
<p>Você só precisa passar tantos parâmetros quando se trata de um script que o WordPress não conhece. Para carregar o jQuery, por exemplo, você pode simplesmente especificar:</p>
<pre class="brush: php">
wp_enqueue_script(&#039;jquery&#039;);
</pre>
<p>Note que &#8216;jquery&#8217; é apenas um &#8220;nome fantasia&#8221; para o script. Para saber quais são todos os scripts disponíveis por padrão no WordPress, dê uma olhada na <a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script">documentação completa da função wp_enqueue_script()</a>.</p>
<h4>Deixando seu caminho flexível</h4>
<p>Para encerrar este post, só falta esclarecer um ponto: não é bonito colocar o caminho para seu arquivo assim na mão, como fizemos no exemplo acima. Isso pode trazer vários problemas, porque, a partir do WordPress 2.6, é possível trocar o diretório &#8216;wp-content&#8217; de lugar. Seu plugin ou tema não vai funcionar corretamente em uma instalação em que alguém tenha movido este diretório. Além disso, não é raro as pessoas trocarem o nome da pasta do plugin, o que também quebraria o seu esquema.</p>
<p>Para contornar esse problema e deixar o seu código universal, vamos usar a constante WP_CONTENT_URL, que guarda o caminho da pasta wp-content, onde quer que ela esteja.</p>
<p>Vamos ver como ficaria nosso script completo:</p>
<pre class="brush: php">
function meuPlugin_addJS() {
$meuPluginURL = WP_CONTENT_URL.&#039;/plugins/&#039;.plugin_basename( dirname(__FILE__)).&#039;/&#039;;
wp_enqueue_script(&#039;meuJs&#039;, $meuPluginURL . &#039;meuJS.js&#039;);
}

add_action(&#039;wp_print_scripts&#039;, &#039;meuPlugin_addJS&#039;);
</pre>
<p>Note que, se meu plugin não depende de ninguém, não preciso passar os dois últimos parâmetros.</p>
<p><strong>Importante:</strong> A constante WP_CONTENT_URL só foi introduzida no WordPress 2.6, portanto, se você quiser que seu plugin ou tema funcione em versões anteriores a esta, adicione uma linha para criar a constante, caso ainda não exista:</p>
<pre class="brush: php">
if ( !defined(&#039;WP_CONTENT_URL&#039;) )
define( &#039;WP_CONTENT_URL&#039;, get_option(&#039;siteurl&#039;) . &#039;/wp-content&#039;);
</pre>
<h4>Mas e nos temas?</h4>
<p>Nos temas, você pode fazer assim:</p>
<pre class="brush: php">
// para garantir compatibilidade com versões anteriores ao WordPress 2.6
if ( !defined(&#039;WP_CONTENT_URL&#039;) )
define( &#039;WP_CONTENT_URL&#039;, get_option(&#039;siteurl&#039;) . &#039;/wp-content&#039;);

function meuTema_addJS() {
wp_enqueue_script(&#039;meuJs&#039;, WP_CONTENT_URL.&#039;/themes/meuTema/&#039; . &#039;meuJS.js&#039;);
}

function meuTema_addCSS() {
echo &#039;&lt;link rel=&quot;stylesheet&quot; href=&quot;&#039; . WP_CONTENT_URL . &#039;/themes/meuTema/meuCSS.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;&#039;;
}

add_action(&#039;wp_print_scripts&#039;, &#039;meuPlugin_addJS&#039;);
add_action(&#039;wp_head&#039;, &#039;meuTema_addCSS&#039;);
</pre>
<h4>Próximos passos</h4>
<p>Seu próximo passo é garantir que esses arquivos externos sejam carregados apenas quando realmente forem usados, para não sobrecarregar o site à toa. Existem várias maneiras de fazer isso, usando hooks específicos ou condições, mas é tema para outro post.</p>
<p>Abraços,</p>
<p>Leo</p>
]]></content:encoded>
			<wfw:commentRss>http://wp-brasil.org/dicas-e-tutoriais/como-chamar-arquivos-css-ou-js-no-seu-tema-ou-plugin/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

