Arquivo da tag: Wordpress

Fazendo upgrade do WordPress de maneira segura

Um amigo tentou atualizar o WordPress de um cliente e ele obteve o seguinte erro no painel de controle:


Fatal error: Call undefined function: attribute_escape() in xxx/html/blog/wp-includes/functions.php on line 2365

Depois de muito procurar, achei por bem, não perder tempo procurando o erro e sim colocar o blog no ar o mais rápido possivel, já que era de um cliente e estava em plena produção.

Na documentação do WordPress eles indicam que é necessário sobrescrever alguns arquivos, porém isso pode acabar causando confusão e danificar a sua instalação do WordPress.

A partir disso eu fiz um upgrade de uma forma um pouco diferente. Supondo que a instalação do WP está na pasta blog, faça:

  • Vá no painel de controle do WordPress e desligue todos os plugins e widgets
  • No seu servidor, crie uma pasta chamada blog_novo ou algo que identifique que essa é a instalação nova.
  • Faça o download da nova versão do WordPress e faça o upload de todos os arquivos para a pasta nova lá no servidor
  • Feio isso: você vai copiar da pasta pricipal do blog antigo o arquivo wp-config.php para a pasta blog_novo. Com isso não será necessario digitar todos os valores de configuração do arquivo para acessar o banco de dados
  • Após isso, rode o script de upgrade em http:/seu_site.com/blog/wp-admin/upgrade.php
  • Agora é só copiar a pasta wp-content/uploads para a pasta …/blog_novo/wp-content/
  • Copie todos os seus temas e widgets para a pasta nova e ative-os
  • Renomeie a pasta contendo a instalacao antiga para blog_velho e renomeie a pasta blog_novo para blog
  • Pronto

Pode parecer besteira, mas essa é uma forma bem mais segura de se fazer o upgrade do WordPress pois você mantém a instalação antiga caso a nova dê algum problema.

Como instalar suporte a Widgets no seu tema do WordPress.

Ontem eu me deparei com um problema na comunidade do WordPress lá no Orkut. Um usuário da comunidade queria instalar o suporte a widgets no seu blog. Até ai nenhum problema.

Só que quando a instalação terminava, não aparecia o painel de controle dos Widgets no centro de controle do WordPress.

Depois de alguns testes achei o problema. O resultado disso é um rápido tutorial de como instalar suporte a widgets no WordPress.

Os widgets são pequenos programas, que executam uma função específica. No wordpress eles ficam localizados no menu do blog.

A grande vantagem de se usar widgets é que não é necessário voce saber PHP ou HTML para reordenar os widgets, acrescentar ou remover. É só colocar o widget direto na pasta:

wp-content/plugins/widgets

Ativar no painel de controle do wordpress e brincar com eles em:

Presentations->Sidebar Widgets

Primeiro, faça o download do plugin para rodar os widgets em http://automattic.com/code/widgets.

Descompacte o arquivo em sua máquina, ao fazer isso você terá:

  • Uma pasta chamada classic
  • Uma pasta chamada default
  • Um arquivo de nome delicious.php
  • Um arquivo de nome gsearch.php
  • Um arquivo de nome widgets.php
  • Um arquivo de nome rss.png
  • E por fim um arquivo de nome README.txt

Feito isso, crie uma pasta chamada widgets dentro da pasta de plugins no seu server:

.../wp-content/plugins/widgets

Depois coloque todos os arquivos exceto o README.txt dentro dessa pasta.

Esqueça as pastas classic e default por enquanto.

Ative o plugin Sidebar Widgets no painel de controle do WordPress. Após você fazer isso você vai notar que não aconteceu absolutamente nada!

Não se preocupe. O que falta é justamente o pulo do gato para a instalação dessa feature. Aquelas pastas classic e default são modificaçoes prontas para os temas Classic e Default do WordPress.

Existem mais temas prontos que já possuem suporte. Mas nossa intenção aqui é dar suporte para um tema que nós desenvolvemos ou modificamos e faremos isso agora:

Primeiramente, vamos olhar o código de nosso menu lateral, vou mostrar um que eu criei aqui:

<!-- begin sidebar -->
<div id="menu2">

<?php /*php wp_list_pages();*/ ?>
<?php /*get_links_list(); */ ?>

<li id="search" class="titulos">
<label for="s"><strong><?php _e('Search:'); ?></strong></label>
<form id="searchform" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<div>
<input type="text" name="s" id="s" size="15" /><br />
<input type="submit" value="<?php _e('Search'); ?>" />
</div>
</form>
</li>

<li id="categories" class="titulos"><strong><?php _e('Categories:'); ?></strong>
<ul>
<?php wp_list_cats(); ?>
</ul>
</li>

<li id="archives" class="titulos"><strong><?php _e('Archives:'); ?></strong>
<ul>
<?php wp_get_archives('type=monthly'); ?>
</ul>
</li>
<li id="meta" class="titulos"><strong><?php _e('Meta:'); ?></strong>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<li><a href="<?php bloginfo('rss2_url'); ?>" title="<?php _e('Syndicate this site using RSS'); ?>"><?php _e('<abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
<li><a href="<?php bloginfo('comments_rss2_url'); ?>" title="<?php _e('The latest comments to all posts in RSS'); ?>"><?php _e('Comments <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
<li><br /><?php echo getad('menu'); ?><!--propagandas--></li>

</ul>
</li>

</ul>

</div>
<!-- end sidebar -->

Até aqui, nada de mais: so acrescentamos algumas linhas:


<?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar() ) : ?>

Essa linha substitui o menu original pelo menu dinâmico se ele for ativado.


<?php endif; ?>

Essa aqui para com o loop encerra a função.

Coloque essas linhas exatamente nesses pontos:


<!-- begin sidebar -->
<div id="menu2">
<?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar() ) : ?> <!--aqui-->

<ul>
<?php /*php wp_list_pages();*/ ?>
<?php /*get_links_list(); */ ?>

<li id="search" class="titulos">
<label for="s"><strong><?php _e('Search:'); ?></strong></label>
<form id="searchform" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<div>
<input type="text" name="s" id="s" size="15" /><br />
<input type="submit" value="<?php _e('Search'); ?>" />
</div>
</form>
</li>

<li id="categories" class="titulos"><strong><?php _e('Categories:'); ?></strong>
<ul>
<?php wp_list_cats(); ?>
</ul>
</li>

<li id="archives" class="titulos"><strong><?php _e('Archives:'); ?></strong>
<ul>
<?php wp_get_archives('type=monthly'); ?>
</ul>
</li>
<li id="meta" class="titulos"><strong><?php _e('Meta:'); ?></strong>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<li><a href="<?php bloginfo('rss2_url'); ?>" title="<?php _e('Syndicate this site using RSS'); ?>"><?php _e('<abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
<li><a href="<?php bloginfo('comments_rss2_url'); ?>" title="<?php _e('The latest comments to all posts in RSS'); ?>"><?php _e('Comments <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
<li><br /><?php echo getad('menu'); ?><!--propagandas--></li>

</ul>
</li>
<?php endif; ?> <!--aqui-->
</ul>

</div>
<!-- end sidebar -->

Após isso, criamos um arquivo chamado functions.php, nele colocamos estas linhas:


<?php
if ( function_exists('register_sidebar') )
register_sidebar();
?>

Cuidado para não colocar nenhuma linha em branco no início ou no final do arquivo!

Agora coloque esse arquivo na pasta do onde está o seu tema. E pronto. O suporte a widget já esta instalado e pronto para ser usado.

Para instalar mais widgets é só fazer o download e jogá-los na pasta widgets que voce criou e ativa-lo no painel do WordPress.

Para instalar os widgets no seu menu, é só ir em Sidebar Widgets escolher um widget da lista abaixo clicar e arrastar para a area chamada Sidebar 1. Para organizar a ordem do menu também é o mesmo esquema, clique e arraste ;)

Para configurar as opções de um widget, clique no botão do lado direito do nome do widget.

Agora é só se divertir com o seu novo menu dinâmico :D. Qualquer dúvida deixe um comentário.

WordPress 2.1 como um Sistema de Gerenciamento de Conteúdo.

Já faz algum tempo que eu usei uma versão 2.0.5 do WordPress para criar um CMS (Sistema de Gerenciamento de Conteúdo) para um cliente meu.

O sistema já está no ar a algum tempo e não apresentou nenhum problema até hoje. Na época eu usei alguns plugins e aluns hacks para que tudo isso funcionasse da forma que eu queria.

Hoje com a versão 2.1 do WordPress essa configuração ficou muito mais fácil, veja como:

1) Crie uma página inicial e uma página para exibir os posts: No painel de controle do WordPress vá em Write->Write Page; crie uma página chamada Home ou algo que o valha; depois crie uma página chamada Blog para exibir seus posts.

2) Defina uma página estática: Vá em Options-> Reading, lá você vai encontrar o item Front Page. Selecione Static Page para a página que você quer exibir como página inicial. Use a página Home que você criou anteriormente. Depois selecione a página Blog como Posts page.

Pronto! Agora é só escolher um bom tema para o seu site ;)

links:

WordPress
Exemplo de um site usando o WordPress como CMS

Adicionar ao Rec6: um derivado e uma instalação mais elegante

Depois de criar o Ar6 ví o Leandro criar um derivado do Ar6 que mostra quantos votos o artigo recebeu no Rec6. Achei bem bacana parabéns pela sacada ;)

O Cardoso também contribuiu bastante com essa corrida pra criar esses plugins: ele deu a dica de fazer uma implementação mais elegante do plugin no loop. Isso se consegue fazendo a verificação da existência do plugin: ou seja, se ele existe, tudo bem, se não o wordpress não fica chatiado e não quebra o seu layout exibindo um erro na pagina :D


<?php if (function_exists("recsix")) {
recsix();
}
?>

Isso é legal não só para o plugin do Leandro, o meu ou qualquer outro, é interessante inserir esse código para qualquer plugin que você instale no WordPress.

O Marcos, que também deu uma força pra encontrar uns pequenos erros nas instruções, fez uma instalação do Ar6 no tema Lowstream do WordPress. Vale dar uma olhada. Parabéns e obrigado a todos pela iniciativa . :D

Blogar via celular: será que é prático?

Não teve jeito. Tive que trocar de celular… O meu antigo Nokia se acabou no cumprimento do dever e para substituir eu peguei um Sony Ericsom 550i devido aos comentários do Marcus do Visual Media.

Ele falou tanto do dito cujo que fui obrigado a ver se era tudo isso mesmo. E não é que era mesmo?!. Depois faço um review e mando pro ZabazabaZ ;).
Na loja a vendedora foi me falando dos recursos que ele tem. Depois de alguma conversa ela disse que poderia mandar e receber emails pelo celular.

Nesse momento eu lembrei de uma matéria que eu li, se não me engano, na revista Isto É, sobre blogs e que tinham pessoas que já faziam isso via celular.

E fiquei me perguntando: será que blogar via celular é tão prático quanto fazer isso usando os softwares clientes ou via painel de controle? Qual seria a vantagem de blogar via celular?

Sei que fazer isso via palm ou é mole, e a Bia faz isso com maestria, mas e em um dispositivo com dimensões mais limitadas e sem o bom e velho teclado abnt2 pra ajudar?

Com isso em mente resolvi escrever alguns posts com ele, pra ver no que dá, e depois comento os resultados desse teste.

Que tipo de recurso você gostaria de ver no WordPress?

Que o WordPress é bom todo mundo sabe, mas ele não é perfeito. Um exemplo: eu não gosto do editor de texto dele, acho que ele não ajuda muito para editar blocos de código para demonstração.

Um outro problema com o editor: ele não gera um código html consistente. Eu mesmo já tive que mexer diretamente do html para consertar alguns problemas que ele gerou. Eu realmente gostaria de ver um editor de texto mais preciso.

Esse é só um exemplo. E você? Que tipo de recurso você gostaria de ver no wordpress?

Que diabos é o Loop do WordPress?

Depois que eu fiz o Ar6 (mais detalhes aqui e aqui), surgiu um comentário do Felipe que achei interessante:”Opa… Meu template nem tem o loop. Se puder me ajudar, agradeço.”

Isso me lembrou quando me iniciei na arte do blog, nem sabia direito o que era o tal do WordPress hoje, depois de muitas horas de sono perdidas :), eu entendi o que o dito cujo faz e, o mais importante, como ele faz.

O segredo do WordPress é o que chamam de O Loop. A grosso modo, ele é um comando condicional feito em php usando a dupla if e while que tem a função de exibir os posts que você escreveu e que estão armazenados no seu banco de dados.

Esse loop, está localizado no arquivo index.php dentro da pasta do tema que você está usando:

/wp-content/themes/nome_do_tema_que_esta_ativo

sua estrutura mais básica é essa:

<!-- O loop começa aqui.-->

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

<!--e termina aqui-->

<?php endwhile; else: ?>
<?php _e('Sorry, no posts matched your criteria.'); ?>
<?php endif; ?>

Quando um plugin necessitar colocar um código no loop, ele deve ficar em algum lugar entre o início e o final desses códigos. Recomendo que se faça um backup do arquivo  index.php para que você não corra risco de fazer qualquer barbeiragem com o seu tema ;).

Espero ter ajudado Felipe :). Dúvidas, sugestões, receita de pão de ló? deixem um comentário :D

Update: plugin Ar6 (Adicionar ao Rec6) versão 0.2

Descobri um pequeno bug na versão anterior do Ar6 (Adicionar ao Rec6). A versão anterior deixa de validar a pagia por causa do caractere &amp;

Por isso lancei a versão 0.2 do Ar6 que corrige isso e também o arquivo leia-me.

Para fazer o update é só seguir esses passos:

  1. pegar o plugin aqui
  2. desligar o plugin no painel de controle do WordPress
  3. substituir o arquivo adicionar_ao_rec6.php na pasta de plugins
  4. ativar o plugin Ar6 no painel de controle

Comentários são bem vindos :)