Wordpress - 5/13 - Webord.net

WordPress 2.8.6, atualização mais uma vez…

Bom galera como já é de praxe toda vez que a equipe do WordPress lança uma nova atualização, eu procuro colocar aqui no blog para avisar.

Parece que foi encontrado outra falha de segurança no seguimento 2.8.X do WordPress, foi descoberto pelo Dawid Golunski um erro com relação a uma falha do Apache para algumas configurações e o Benjamin Flesch descobriu uma falha com relação ao XSS do Press This.

Então a recomendação é atualizar, para não correr riscos.

Abaixo seguem os links:

, , , , , ,

WordPress body_class(); Function

Estes dias eu comecei a desenvolver um tema chamado de DevStart, o qual vou disponibilizar aqui no blog, e me deparei com um problema ao usar esta função maravilhosa do WordPress.

A função body_class(); é muito útil quando você tem que desenvolver um tema e gostaria de fazer um pouco de dinamismo nas cores, por exemplo, pois colocando-a dentro da tag <body> adicionamos classes à tag que dizem algumas informações sobre que página o usuário está visitando, e desta forma podemos aplicar o devido CSS.

O problema que eu me deparei ontem quando comecei a implementar esta função, foi que ela adiciona todo o texto class="classes", e isso é ruim, mesmo que a função nos permita adicionar nossas classes, não me permite usar um plugin em jQuery para descobrir qual navegador o sujeito usa. Então fiz um pequeno hack para fazer a função apenas adicionar as classes.

Bom primeiro vou explicar como é o uso normal da função. A função, como eu já citei anteriormente deve ser colocado dentro da tag <body>, da seguinte forma:

<!--Cabeçalho acima-->
<body <?php body_class(); ?>>
<!--Corpo da página abaixo-->

Se for usado desta forma teremos o seguinte resultado quando estivermos na home do nosso blog e logados no sistema:

<!--Cabeçalho acima-->
<body class="home blog logged-in">
<!--Corpo da página abaixo-->

O que eu fiz foi bem simples, utilizando uma função chamada get_body_class();, que é a função que faz todas as verificações e define em uma variável todas as classes que devem ser adicionadas e retorna um array, eu usando o implode(); do PHP eu criei uma função no arquivo function.php para solucionar o nosso problema e apenas escrever as classes.

Então vamos abrir o arquivo functions.php e vamos adicionar o seguinte código:

function echo_body_class() {
	echo implode(" ", get_body_class());
}

Este código cria a função echo_body_class(); e transforma o array retornado em apenas uma string separando cada um dos resultados com um espaço.

Bom agora acesse seu arquivo que contém a tag <body> e substitua-a pelo seguinte:

<!--Cabeçalho acima-->
<body class="<?php echo_body_class(); ?>>">
<!--Corpo da página abaixo-->

Então teremos o mesmo resultado que com a função body_class(); porém agora poderemos adicionar todas as classes que nos forem interessantes. Problema resolvido.

Ahh e sobre este tema que estou desenvolvendo, ele vai ser colocado aqui no blog para download, e sua principal função é servir como tema base para o desenvolvimento de outros.

, , ,

WordPress 2.8.5, atualização de segurança!

Bom galera mais uma vez eu venho trazer aqui no Webord a notícia que o WordPress tem mais uma falha de segurança nessa versão 2.8.X, mas como sempre a equipe de desenvolvimento do sistema arrumou este problema muito rápido.

Bom as correções foram basicamente uma para um problema de segurança que estava rolando no sistema de Trackback, a remoção de alguns códigos php, a modificação do sistema de upload e a retirada de dois plugins que funcionavam para importar tags.

A recomendação minha e que a equipe faz é da atualização para que nenhum tipo de ataque ao sistema possa vir a acontecer.

Abaixo seguem os links:

, , , , , ,

Usando Cache no WordPress

Bom acho que todos sabem o que é o Cache do Browser, porém a maioria dos desenvolvedores Web de hoje não sabe realmente usa-los para otimizar o site da maneira correta. Com o WordPress este trabalho fica bem mais fácil, devido a uma função interna.

Abaixo vou explicar como funciona, porém não tem como sanar todas as dúvidas, então seria muito legal se vocês colocassem em discussão algo que tiverem com problemas, ai talvez eu possa te ajudar.

Na versão 2.3 do WordPress que veio a primeira função de Cache do wordpress, e era opcional seu uso, então deveria ser usado um pequeno código para ativar o seu uso: define ( 'ENABLE_CACHE', true);

Mas só na versão 2.6 que as funções para Cache receberam um tratamento interessante, ele se tornou orientado a objeto e então trouxe várias oportunidades para seu uso. Nesta versão o uso do Cache já entra como padrão então nada de ativação.

Porém com esta introdução é importante para seu uso um mínimo de memória do servidor, então o WordPress começou a requerer que os servidores tivessem ao menso 32MBytes de RAM.

Mas vamos ao tópico principal, como usar as funções de Cache do WordPress. As mesmas podem ser encontradas no arquivo wp-includes/cache.php, ou no Codex do WordPress.org

De começo temos que saber como inserir informações no Cache do usuário, usando a função abaixo podemos faze-lo:

/**
 * @Parâmetro - int|string $key - ID do item para ser identificado depois
 * @Parâmetro - mixed $data - A informação que deve ser guardada
 * @Parâmetro - string $flag - O grupo que a informação deve ser guardada
 * @Parâmetro - int $expire - Quanto tempo leva para a informação expirar
 */
wp_cache_add($key, $data, $flag = '', $expire = 0)

Para deletar é quase a mesma coisa, apenas devemos identificar o grupo e a ID.

/**
 * @Parâmetro - int|string $id - ID do item que foi dita na outra função
 * @Parâmetro - string $flag - O grupo que a informação foi guardada
 * @Retorna - bool - Verdadeiro quando completa a ação e falso quando não consegue
 */
wp_cache_delete($id, $flag = '')

Como recuperar a informação salva em Cache, usando o grupo e a ID:

/**
 * @Parâmetro - int|string $id - ID do item que foi dita na outra função
 * @Parâmetro - string $flag - O grupo que a informação foi guardada
 * @Retorna - bool|mixed - Falso quando não consegue e quando ver
 */
wp_cache_get($id, $flag = '')

Se for necessário modificar algo em uma informação:

/**
 * @Parâmetro - int|string $key - ID do item para ser identificado depois
 * @Parâmetro - mixed $data - A informação que deve ser guardada
 * @Parâmetro - string $flag - O grupo que a informação deve ser guardada
 * @Parâmetro - int $expire - Quanto tempo leva para a informação expirar
 * @Retorna - bool - Falso se o ID e o Grupo já existirem e verdadeiro quando completa a ação
 */
wp_cache_replace($key, $data, $flag = '', $expire = 0)

Agora vamos a um pequeno exemplo. Usaremos uma URL como dado a ser salvo:

$v_webord_cache = wp_cache_get( 'webord_cache ' ); // Pega a informação com a id "webord_cache "
if ($v_webord_cache == false) { // Se a informação não estiver disponível
	$v_webord_cache = "http://webord.net/"; // Salva na variável a informação
	wp_cache_set( 'webord_cache', $v_webord_cache ); // Salva o cache para a chave "webord_cache "
}
var_dump( $v_webord_cache ); // Exibe o Conteúdo

Bom é basicamente isso, quando eu comecei a estudar Web eu me assustava quando falavam de Cache mas hoje percebo que não é um Monstro, é bem simples até, basta você ter empenho e estudar.

, , , , , , , ,