Corrigindo o erro ‘Allowed memory size Exhausted’ na instalação do WordPress 2.8
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
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.- Busca (fixa – não é aba)
- Botões de controle (ID=sbnav – menu)
- Posts Recentes (ID=sbposts – aba)
- Categorias e Tags (ID=sbcattag, DISPLAY:none – aba)
- 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.
Como exibir parte da postagem apenas para usuários registrados
É 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
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
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 !
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
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
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
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 !
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.

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










