<?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>Marcelo Furusawa Honório &#187; PHP</title>
	<atom:link href="http://blog.marcelohonorio.com.br/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.marcelohonorio.com.br</link>
	<description>Blog sobre assuntos aleatórios</description>
	<lastBuildDate>Fri, 28 May 2010 19:42:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Escrevendo um plugin simples para o WordPress</title>
		<link>http://blog.marcelohonorio.com.br/tecnologia/plugin-simples-wordpress/</link>
		<comments>http://blog.marcelohonorio.com.br/tecnologia/plugin-simples-wordpress/#comments</comments>
		<pubDate>Thu, 14 May 2009 18:40:50 +0000</pubDate>
		<dc:creator>Marcelo Honório</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[mystatus]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://blog.marcelohonorio.com.br/?p=59</guid>
		<description><![CDATA[Olá! Segue abaixo um tutorial sobre escrever um plugin simples para o WordPress. Nosso primeiro plugin terá a funcionalidade de colocar um status seu no Blog, assim como tem no Orkut. Algo do tipo: Status: &#8220;Hoje estou feliz :) estou escrevendo meu primeiro plugin para WordPress&#8221; Os objetivos do plugin serão: Receber e armazenar o [...]]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Olá!</p>
<p>Segue abaixo um tutorial sobre escrever um plugin simples para o WordPress. Nosso primeiro plugin terá a funcionalidade de colocar um status seu no Blog, assim como tem no Orkut. Algo do tipo:</p>
<p><strong>Status:</strong> <em>&#8220;Hoje estou feliz :) estou escrevendo meu primeiro plugin para WordPress&#8221;</em></p>
<p>Os objetivos do plugin serão:</p>
<ul>
<li>Receber e armazenar o status no wp-admin</li>
<li>Disponibilizar a função para ser exibida no template</li>
</ul>
<p><strong>1. Escolhendo um nome</strong></p>
<p>Primeiro passo para escrever um plugin é escolher um nome que seja único. Pra isso, entre em <a href="http://wordpress.org/extend/plugins/">http://wordpress.org/extend/plugins/</a> e verifique se o nome já não existe. Nosso plugin de hoje terá o nome de &#8220;MyStatus&#8221;.</p>
<p><strong>2. Iniciando o desenvolvimento</strong></p>
<p>Para desenvolver plugins para WordPress não precisa de conhecimentos avançados em PHP. Vamos iniciar o desenvolvimento pelo cabeçalho. É obrigatório seu Plugin começar com o seguinte trecho de código comentado:</p>
<pre class="brush: php;">/*
Plugin Name: MyStatus
Plugin URI: http://www.site_do_plugin.com.br
Description: Plugin que exibe o seu status atual
Version: 0.1
Author: Marcelo Honório
Author URI: http://www.marcelohonorio.com.br
*/</pre>
<p><strong>3. Desenvolvendo as funcionalidades</strong></p>
<p>Primeiramente vamos adicionar a chamada do plugin no wp-admin para o nosso plugin. Colocaremos ele como um box no menu lateral esquerdo, pra isso, adicionaremos as seguintes linhas:</p>
<pre class="brush: php;">add_action('admin_menu', 'mystatus_menu');
function mystatus_menu() {
	add_menu_page('MyStatus', 'MyStatus', 1, __FILE__, 'show_my_status');
}</pre>
<p>Vamos às explicações. Na função add_action() dissemos para o WordPress que no admin_menu (menu lateral esquerdo do wp-admin), quando ele for construído, adicionar o Box do nosso plugin com o nome MyStatus e quando clicar nele, remeter para o próprio arquivo do plugin (__FILE__) que você escontrará a função  show_my_status() para ser executada.</p>
<pre class="brush: php;">function show_my_status(){
	global $mystatus_o_name;
	if(isset($_POST['mystatus'])){
		update_option('mystatus_name', $_POST['mystatus']);
		$save = true;
	}
	$mystatus = get_option('mystatus_name');

	$txt = '
&lt;h2&gt;MyStatus&lt;/h2&gt;
';

	$txt .= isset($save) ? 'Status salvo com sucesso!' : '';
	$txt .= '
&lt;form action=&quot;'.$_SERVER['REQUEST_URI'].'&quot; method=&quot;post&quot;&gt;
&lt;input name=&quot;mystatus&quot; size=&quot;100&quot; type=&quot;text&quot; value=&quot;'.$mystatus.'&quot; /&gt;
&lt;input class=&quot;button&quot; type=&quot;submit&quot; value=&quot;Atualizar!&quot; /&gt;&lt;/form&gt;

';
	echo $txt;
}</pre>
<p>Nessa função está sendo impressa o formulário para recebimento do status e a escrita no banco de dados. Se você estiver familiarizado com o PHP, entenderá esse código rapidamente, a não ser pelas funções update_option() e get_option(). Ambos os métodos servem para a persistências de dados. Com as funções add_option(), get_option(), update_option() é possível adicionar, recuperar e atualizar dados respectivamente. Os dados podem ser strings, inteiros, array, matrizes, objetos, ou qualquer outro dado que pode ser serializado pelo PHP.</p>
<p>Aproveitando que citei sobre a persistência de dados, precisamos ter esse espaço preparado já na instalação do plugin.</p>
<pre class="brush: php;">register_activation_hook(__FILE__, 'mystatus_activate');
function mystatus_activate() {
	if(get_option('mystatus_name')){
		update_option('mystatus_name', '');
	}else{
		add_option('mystatus_name', '');
	}
}</pre>
<p>A função register_activation_hook() serve para executar uma função assim que o plugin é ativado. Na nossa função de ativamento, estamos preparando o espaço de armazenamento do nosso plugin.</p>
<p>O último passo é desenvolver a função que que exibirá o status assim que for chamada a função mystatus().</p>
<pre class="brush: php;">function mystatus() {
	$mystatus = get_option('mystatus_name');
	echo $mystatus;
}
add_action('mystatus', 'mystatus');</pre>
<p>Pronto! Nosso plugin está desenvolvido! Para utilizá-lo, é só colocar algo do tipo no seu template:</p>
<p>Meu status:</p>
<p>Bom, espero que tenham entendido como desenvolver um simples plugin para WordPress. Qualquer dúvida é só deixar mensagem!</p>
<p><strong>Download do plugin: <span style="font-weight: normal;"><a href="/wp-content/uploads/2009/05/mystatus.zip">MyStatus</a></span></strong></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.marcelohonorio.com.br/tecnologia/plugin-simples-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
