Corrigindo o erro ‘Allowed memory size Exhausted’ na instalação do WordPress 2.8

Postado por Guga Alves  
No dia 11 de junho de 2009


Um pequenho hackzinho que pode ajudar aqueles que passaram pelo mesmo problema que passamos por aqui.

Ao atualizar nosso site para o WordPress 2.8 (após um lógico backup de tudo), a seção administrativa do site apresentava a seguinte mensagem de erro:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2348617 bytes) in …

Como o próprio erro menciona, o problema aconteceu pois o limite de memória do servidor (32 MB) foi alcançado, faltando assim memória disponível para carregar corretamente os arquivos do sistema. Isso normalmente ocorre quando temos muitos plugins ativos, consumindo a memória do servidor

Mas tudo bem, caso enfrente este problema, siga uma das duas dicas abaixo, com certeza uma delas resolverá seu problema !

Dica 1 – Método mais simples:

Adicione a linha abaixo no arquivo /wp-config.php

define(‘WP_MEMORY_LIMIT’, ’64M’);

Dica 2 – Método mais longo:

Adicione a linha abaixo no arquivo /wp-includes/cache.php imediatamente após a abertura da tag <?php :

ini_set(‘memory_limit’,’64M’); // set memory to prevent fatal errors

Depois disso,  crie um arquivo .htaccess com o código abaixo e o insira na pasta wp-includes:

# set memory limit for cache.php
php_value memory_limit 64M

Finalmente, crie um arquivo php.ini e o coloque também no diretório wp-includes:

;; set memory limit for cache.php
memory_limit = 64M

E pronto.. salve tudo, faça o upload dos arquivos e tente novamente entrar no admin de seu site.

Infelizmente, esta dica não funcionará sempre, dependerá muito das configurações de seu servidor.. mas mesmo assim, vale a pena tentar !

Mostrar a barra lateral em abas

Postado por Cau  
No dia 11 de junho de 2009


Vamos mostrar como seccionar o conteúdo da barra lateral de seu tema WordPress em abas. A forma mais simples de fazer isso é criar um arquivo com base na sua sidebar e modificá-lo para servir ao nosso propósito. Desde a versão 7, o WP suporta múltiplas sidebars, bastando para isso criar seu arquivo com um nome assim: ‘sidebar-xxx.php’. Então, ao chamar get_sidebar(), envie como parâmetro o nome da sua sidebar: get_sidebar('xxx').

Normalmente a sidebar está contida em uma única tag <UL>. Bem, o que vamos fazer é dividir a sidebar em várias listas, sendo que algumas delas farão parte do nosso sistema de abas. Para isso vamos dar um ID a cada <UL> que pertence ao nosso set de abas, setando no atributo STYLE a propriedade display para 'none', excetuando a primeira aba, que deve estar visível inicialmente.

Usei como base o arquivo sidebar.php do tema WordPress Default 1.6 por Michael Heilemann – tema padrão, que faz parte da instalação inicial do WordPress. Segue a lista de modificações executadas:

  • Dividi o conteúdo principal (UL) em 4 listas, sendo que uma ficará visível acima das abas e três irão integrar o nosso sistema
    e adicionei uma lista com os botões de controle, imediatamente acima da sequência de abas.

    1. Busca (fixa – não é aba)
    2. Botões de controle (ID=sbnav – menu)
    3. Posts Recentes (ID=sbposts – aba)
    4. Categorias e Tags (ID=sbcattag, DISPLAY:none – aba)
    5. Outros – vários itens ou os widgets, se houver (ID=sbothers, DISPLAY:none – aba)

Logo acima da sequência de ULs que compõe nosso set, colocamos uma outra <UL> com os botões para controlar as abas – um botão para cada aba. Na verdade é o estilo aplicado a essa UL que irá definir o tipo de navegação por abas. Segue o CSS usado. A classe sbbutcur será aplicada à <LI> selecionada – e a aba inicialmente visível deve ter essa classe definida.

Leia mais >>

Como exibir parte da postagem apenas para usuários registrados

Postado por Guga Alves  
No dia 26 de maio de 2009


É muito fácil e com esta dica você poderá exibir conteúdo exclusivo para usuários registrados em seu site WordPress, estimulando assim mais registros ! Já estou até pensando em aplicar em alguns projetos :)

Apenas adicione o seguinte código php no arquivo functions.php de seu tema:

add_shortcode( ‘member’, ‘member_check_shortcode’ );

function member_check_shortcode( $atts, $content = null )
{
if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
return $content;
return ‘ ‘;
}

Uma fez inserido no functions, você pode adicionar a seguinte tag para criar uma parte do texto (ou qualquer outro conteúdo) que será exibido apenas para usuários registrados:

[member]
Este trecho será exibido apenas para usuários registrados. Fácil, não ?
[/member]

Alterando sua senha de admin no WordPress via SQL

Postado por Guga Alves  
No dia 8 de maio de 2009


Esqueceu sua senha de admin e precisa a alterar de uma maneira mais, digamos, ”radical” ?

Você pode usar este comando SQL para o alterar.. (pode ser via o phpmyadmin, por exemplo, ou console)

UPDATE `wp_users` SET `user_pass` = MD5( ‘nova_senha_aqui’ ) WHERE `wp_users`.`user_login` = “login_do_admin”;

Como você pode notar, apenas nova_senha_aqui e logins_do_admin devem ser alterados para seus respectivos, ok ?

Abraços a todos

Fazendo a busca do WordPress funcionar apenas para algumas categorias

Postado por Guga Alves  
No dia 17 de abril de 2009


Me passou pela cabeça a seguinte questão: Como excluir algumas categorias da busca do WordPress ?

Passou pela sua também ? Então continue lendo esse post, a dica vem logo abaixo !

Adicione o código ao arquivo search.php:

<?php if( is_search() )  :
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("s=$s&paged=$paged&cat=9,11,16");
endif; ?>

A seleção das categorias que farão parte da busca se dá na terceira linha, onde se lê cat=9,11,16 , troque pelo ID das categorias que você deseja exibir. O ID das categorias, conforme já expliquei em outras postagens, pode ser obtido em Posts -> Categorias posicionando o mouse no nome da categoria e vendo na barra de status (no rodapé de seu navegador) o cat_ID exibido (Ex.:http://www.seusite.com.br/wp-admin/categories.php?action=edit&cat_ID=4).

Update:

Nosso leitor e agora colaborador Marcelo Torres enviou uma outra maneira de se fazer tal alteração, segue abaixo:

<?php get_header(); ?>
<div id=”conteudo”>
<?php if (have_posts()) : ?>

<h1>Resultado(s) da busca por: “<?php the_search_query();?>“</h1>
<div id=”box”>
<?php while (have_posts()) : the_post(); ?>
<div class=”box_busca”>
<?php if ( in_category(3) || in_category (13) || in_category (14) || in_category (15) ): ?>
<?php else : ?>
<a href=”<?php the_permalink() ?>” title=”<?php the_title(); ?>“><?php the_title(); ?></a>
<?php the_excerpt(); ?>
<?php endif; ?>
</div>
<?php endwhile; ?>
</div>
<?php else : ?>

<p>Nada encontrado. Verifique o termo de pesquisa e tente outra vez!</p>

<?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

A linha:

<?php if ( in_category(3) || in_category (13) || in_category (14) || in_category (15) ): ?>

É aonde você escolhe a categoria que não quer que escolha no post, com a sintaxe: in_category(ID);

Além disso, contribuindo ainda mais com o conteúdo desta postagem, nos avisou de um plugin chamado Advanced Category Excluder que esconde todos os posts de uma determinada categoria, porém ele não esconde apenas dos resultados de busca, esconde também do feed, posts recentes, lista de categorias, entre outros.

Marcelo, obrigado pela colaboração ! Sempre que tiver algo a acrescentar assim, pode entrar em contato ou enviar você mesmo uma matéria, registrando-se no site e fazendo sua postagem. :D

WordPress Theme Generator !

Postado por Guga Alves  
No dia 9 de abril de 2009


Calma, não é um produto das organizações Tabajara..

Se você está cansado de procurar um tema simples para WordPress, porque não criar o seu próprio tema com uma ferramenta online ?

Com o WordPress Theme Generator você poderá criar seu tema da maneira que quiser !

Escolha 2 ou 3 barras laterais e a posição destas barras, a formatação dos links de paginas, cores e imagens de fundo e muito mais !

Ai vai o link: http://www.yvoschaap.com/wpthemegen/

Enquanto não aparecem temas novos por aqui, você pode ir criando o seu, estudando o funcionamento de um tema, e, quem sabe, a partir disso começar a criar os seus próprios temas sem ajuda ! :D

Protegendo o nome de usuários registrados em seu blog

Postado por Guga Alves  
No dia 7 de abril de 2009


Esta modificação em seu WordPress irá checar se o nome ou e-mail usado pelo usuário que comenta sem estar logado é igual ao de algum usuário registrado nele. Primeiro, teremos a checagem se o autor do comentário está logado. Se não estiver, o nome e email serão comparados com os registrados no banco de dados.  Se for igual, o comentário será bloqueado e uma mensagem escolhida por você será mostrada ao usuário. Vale lembrar que o script é case-sensitive (Difere maíusculas de minúsculas). Esta modificação foi testada do WordPress 2.2 ao 2.7+

Instruções

1) Abra o arquivo /wp-comments-post.php para edição(um backup antes disso é sempre bem-vindo.. vai que algo dá errado) 2) Ache o seguinte trecho de código:

$comment_author       = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url   = trim($_POST['url']);
$comment_content      = trim($_POST['comment']);

3) Depois do trecho acima, adicionem o trecho de código que temos logo abaixo:

// get list of user (display) names for blog
global $wpdb;
$valid_users = (array)$wpdb->get_results("
  SELECT display_name, user_email FROM " . $wpdb->prefix . "users");

// get ID of logged in user (if there is one)
global $userdata;
get_currentuserinfo();
$logged_in_name = $userdata->ID;
$logged_in_email = $userdata->user_email;

// see if the comment author matches an existing author
$found_match = FALSE;
foreach ($valid_users as $va) {

  if (trim($va->display_name) != '') {
    if (strtolower($va->display_name) == strtolower($comment_author)) {
      $found_match = TRUE;
      break;
    }
  }
  if (trim($va->user_email) != '') {
    if (strtolower($va->user_email) == strtolower($comment_author_email)) {
      $found_match = TRUE;
      break;
    }

  }
}

// if commenter is not logged in, but match was found, block the comment
if (trim($logged_in_name) == '') {
  if ($found_match == TRUE) {

wp_die( __('Voce nao pode deixar comentários com o nome ou email de um
 usuário registrado no site.

 Caso seja você mesmo, efetue seu login.') );

  }
}

4) Salve o arquivo e o feche

Notas

Para testar esta modificação, simplismente se desconecte e tente postar um comentário usando o nome de usuário ou e-mail que você mesmo tem registrado. Se quiser alterar a mensagem exibida, altere o texto entre aspas na seguinte linha:

wp_die( __('Voce nao pode deixar comentários com o nome ou email de um
 usuário registrado no site.

 Caso seja você mesmo, efetue seu login.') );

Redimensionamento automático de suas imagens

Postado por Guga Alves  
No dia 1 de abril de 2009


Essa eu aprendi no outro blog que ajudo a manter, o Treta Games , site de jogos em Flash e afins :)

Lá vai a dica:

1 – Baixe este script e salve-o em seu PC  (com o nome timthumb.php)

2 – Usando um programa de FTP, envie o arquivo para a pasta /public_html/scripts

3 – Agora você poderá exibir a imagem usando o seguinte código:

<img src="/scripts/timthumb.php?src=/images/imagem.jpg&h=150&w=150&zc=1" alt="" />

4 - Isto poderá ser muito útil para a criação de seus temas, definindo tamanho da imagem

a ser exibida através de um campo personalizado, ou dentro de algum loop que deseje usar.

P.S.: Este script foi criado por Darren Hoyt

WordPress e Internet Explorer 8

Postado por Guga Alves  
No dia 28 de março de 2009


Com o lançamento do Internet Explorer 8, alguns sites não tem se comportado bem neste navegador, que usa um novo identificador correspondente (MSIE 8).

Entre estes sites, seu site em WordPress será um dos atingidos !

Para evitar que seu site não seja exibido corretamente para usuários que já tenham atualizado seus navegadores, recomendamos a adição do código abaixo em uma das primeiras linhas do arquivo header.php de seu tema:

<?php if (strpos($_SERVER['HTTP_USER_AGENT'],”MSIE 8″)) {
header(”X-UA-Compatible: IE=7″);} ?>

Com isso você estará eliminado de vez este problema, e não perderá visitas a seu site graças a uma diagramação mal interpretada pelo navegador.

Evite que seu WordPress de dicas aos invasores !

Postado por Guga Alves  
No dia 28 de março de 2009


Já reparou que na página de login de seu WordPress, quando você erra o login ou a senha o sistema avisa o que você errou ?

Tudo bem, é um recurso até bacana, simpático… mas também é uma ótima dica para os invasores ! Com isso, eles poderão saber aonde estão errando na hora de invadir seu sistema e assim aperfeiçoar suas táticas para proceder com a tentativa.

Para eliminar este aviso de erro, adicione a linha abaixo no arquivo functions.php de seu tema.

add_filter('login_errors',create_function('$a', "return null;")); <!--Hace que WP no informe de que falla en el login-->

Com isto, o aviso não será exibido, conforme exibido na imagem abaixo.

sinpistawp Evite que seu WordPress de dicas aos invasores !

Com esta simples dica você estará aumentando a segurança de seu WordPress :)

Pagina 5 de 812345678