Arquivo da tag: Wordpress

Como modificar o endereço de edição de perfil na barra de administrador do WordPress

Caso você tenha construído um formulário de edição de informações de seus usuários, e não deseje que seus usuários vejam o painel do WordPress, você terá que modificar a URL de edição de perfil da barra de administração do WordPress:

add_filter( 'edit_profile_url', 'sdac_custom_profile_url', 10, 3 );
function sdac_custom_profile_url( $url, $user_id, $scheme ) {
	$url = site_url( '/usuarios/'.wp_get_current_user()->user_login.'/edit/' ); // Novo Endereço
	return $url;
}

Este código acima deve ser adicionado ao arquivo functions.php que fica na raiz de seu tema.

Algo muito útil para construir a URL acima é saber algumas das propriedades do objeto “WP_User”:

<?php
    $current_user = wp_get_current_user();
    /**
     * @example Safe usage: $current_user = wp_get_current_user();
     * if ( !($current_user instanceof WP_User) )
     *     return;
     */
    echo 'Username: ' . $current_user->user_login . '<br />';
    echo 'User email: ' . $current_user->user_email . '<br />';
    echo 'User first name: ' . $current_user->user_firstname . '<br />';
    echo 'User last name: ' . $current_user->user_lastname . '<br />';
    echo 'User display name: ' . $current_user->display_name . '<br />';
    echo 'User ID: ' . $current_user->ID . '<br />';
?>
Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Como remover o menu “Forums” da barra de administradores (Admin bar) do WordPress

Esta barra é inserida pelo plugin “GD bbPress Tools” e para removê-la você precisará editar o arquivo toolbar.php que se encontra na pasta “/wp-content/plugins/gd-bbpress-tools/code/mods”. Você precisa modificar a função “admin_bar_menu()” para que ela fique igual ao código abaixo:

public function admin_bar_menu() {
        global $wp_admin_bar;
}

Um outro método é inserir o código abaixo no arquivo functions.php de seu tema:

function remove_toolbar_nodes($wp_admin_bar) {
	$wp_admin_bar->remove_node('gdbb-toolbar');
}
add_action('admin_bar_menu', 'remove_toolbar_nodes', 999);

Outros itens que você pode remover utilizando a função abaixa são:

function remove_toolbar_nodes($wp_admin_bar) {
	$wp_admin_bar->remove_node('wp-logo'); // Remover o logotipo do WordPress
	$wp_admin_bar->remove_node('site-name'); // Remove o menu com o nome do site
	$wp_admin_bar->remove_node('updates');  // Remove o menu "Atualizações"
	$wp_admin_bar->remove_node('comments');  // Remove o menu "Comentários"
	$wp_admin_bar->remove_node('new-content');  // Remove o menu "Novo"
	$wp_admin_bar->remove_node('gdbb-toolbar');  // Remove o menu "Forums"
	$wp_admin_bar->remove_node('customize'); // Remove o menu "Personalizar"
	$wp_admin_bar->remove_node('customize-background');
	$wp_admin_bar->remove_node('customize-header');
	$wp_admin_bar->remove_node('search'); // Remove o menu Pesquisar (ícone)

	// Se você deseja que apenas o Administrador visualize um item, utilize o código abaixo:

	if (!current_user_can('administrator') && !is_admin()) {
		$wp_admin_bar->remove_node('site-name');
	}

}
add_action('admin_bar_menu', 'remove_toolbar_nodes', 999);
Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Links permanentes (permalinks) do WordPress não funcionam

Se você acabou de instalar seu servidor e não conseguiu configurar o WordPress para utilizar os links permanentes pois ao acessar o link aparece a mensagem de erro 404 (File not found), esse post irá te ajudar. Continue lendo

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Como bloquear ataques DDOS (XML RPC) ao WordPress?

Esta semana a Base de Conhecimento ficou fora do ar devido a um ataque DDoS. Ele estava atacando uma falha conhecida no WordPress causada pelo XML RPC habilitado para pingbacks.

Continue lendo

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Como criar um menu “não-clicável” no WordPress?

Se você já tentou criar um menu que contivesse sub-menus, você provavelmente já deve ter tido o desejo de criar o menu pai sem a possibilidade do usuário clicar sobre ele e visualizar uma outra página.

O WordPress não fornece uma solução oficial, mas a forma mais utilizada pelos desenvolvedores de resolver este problema é criando um item de menu do tipo “Links Personalizados” e na URL definir o endereço “#”. Isso mesmo, apenas este símbolo, ele não deve ser precedido pelo “http://”.

Bem, funcionar… funciona! Mas para mim, esta não é a solução ideal. Uma vez que, ao clicar neste menu, o usuário não será redirecionado para qualquer página, mas na barra de endereço aparecerá no fim da URL o simbolo “#”.

Em breve postarei como solucionar este problema de forma mais elegante, modificando o WordPress.

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Erro 500 após atualizar o WordPress

Após atualizar o wordpress hoje pela manhã, ao tentar acessar o blog, fui surpreendido com a mensagem (Error HTTP 500 – Internal Server Errror, ou em português: Erro Interno do Servidor).

Li diversas soluções para esse problema, como desabilitar tema e plugins via banco de dados. Mas consegui solucionar de forma mais simples e menos traumática.

Conecte-se ao seu SGBD, utilizando por exemplo o phpMyAdmin, selecione o banco de dados do seu blog. Será exibida a estrutura contendo todas as tabelas. Selecione todas, clicando no botão “Check All”; agora no dropboxa ao lado selecione a opção Optimize Table.

Após realizar esta operação, tente acessar o seu blog novamente!

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

“Momentaneamente indisponível para manutenção programada. Verifique novamente em um minuto”

Desde que me mudei, minha conexão com a Internet não é o que podemos chamar de exemplar. Além de ser lenta, muitas vezes cai, e na maioria das vezes por queda de energia na cidade (desligando meu reteador, meu modem, ou o provedor). Se antes eu reclamava da COELBA, posso dizer com toda certeza que a CEMAT não chega nem aos pés da primeira. Em média, são três quedas de energia por dia, e em dias de chuva piora muito…

Mas o que isso tem a ver com o título do post?

Bem, ontem o WordPress me alertou sobre atualização para a versão mais nova. Imediatamente, tentei realizá-la. Neste momento exato, a conexão caiu por falta de energia elétrica, e interrompeu o processo de atualização, causando a exibição da seguinte mensagem em meu site: “Momentaneamente indisponível para manutenção programada. Verifique novamente em um minuto”.

Como Solucionar?

Dos males o menor: se você está conseguindo visualizar esta mensagem em seu site, significa que a atualização do WordPress foi realizada com sucesso. porém o script não conseguiu remover o arquivo que coloca o WordPress em modo de manutenção.

Para solucionar este problema, conecte-se via FTP ao seu servidor e no diretório raiz remova o arquivo “.maintenance”

Pronto! Seu blog voltará a funcionar… ou não…

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).

Segurança em blogs WordPress

WordPress é uma ferramenta Open Source, isso significa dizer que qualquer um pode ter acesso a seu código fonte, estudá-lo e encontrar problemas de segurança, incluindo pessoas má-intencionadas. Está é uma das razões porque você deve se preocupar com a segurança de seu blog.

Este artigo descreverá 10 passos a serem seguidos para melhorar a segurança de seu Blog.

Passo 01 – Remova o usuário Admin

O usuário administrador padrão é chamado “Admin”, isso significa que se você utilizá-lo como o administrador do seu sistema, só restará a outra metade do caminho (senha) para que o seu site seja invadido. Caso você o remova, é necessário que a pessoa que deseja entrar descubra, além da senha, qual o nome do usuário que detém o privilégio administrativo.

Preferencialmente, tenha dois usuários. Um que será utilizado para postar conteúdo, e um outro que será utilizado apenas para realizar tarefas de administração, e que obrigatoriamente deverá ser mantido em segredo, nunca utilizado para postar conteúdo, ou interagir com os usuários do blog. Crie-o e mantenha armazenado em seu computador junto com a senha complexa que deverá ser criada para o mesmo.

Quanto menos previsível for o nome deste usuário administrativo, mais difícil será para que o mesmo seja descoberto. Um bom exemplo de nome é “x7duEls91ak”.

“Trate sua senha como uma escova de dente. Não deixe ninguém utilizá-la, e troque-a a cada seis meses” ~Clifford Stoll

Passo 02 – escolha uma senha forte

Não importa o site que você está gerenciando, você pode estar sob ataque de força-bruta! Realizando o primeiro passo sugerido neste artigo, você provavelmente já terá eliminado a probababilidade de ser atacado por muitos usuários, porém sempre existiram aqueles mais persistentes, que poderão conseguir descobrir qual é o seu usuário administrador. Agora, para tentar impedir que eles descubram facilmente qual é a sua senha, escolha senhas complexas com mais de 6 caracteres, e que incluam letras, números e símbolos. Evite senhas comuns como 123456, datas comemorativas e etc. Caso deseje saber se a sua senha escolhida é uma senha fraca ou forte visite o site passwordmeter.com.

Passo 03 – Proteja sua senha

Acrescente plugins de segurança, existem vários disponíveis gratuitamente. Uns bloqueiam mais que três tentativas de acesso, outras informam por e-mail ataques de força bruta.

Um plugin muito útil é o Login LockDown. Ele grava o endereço IP e o momento em que uma determinada quantidade de logins passa a falhar. A maioria dos hackers desistem após ter o IP banido, após algumas tentativas de logon.

Passo 04 – Mantenha o WordPress Atualizado

É sempre importante estar com a versão mais nova do WordPress. Quando uma falha no software é detectada, a WordPress.org lança uma nova versão com este problema solucionado. Porém, os software que não atualizam passam a ter o problema descoberto como alvo a ser explorado, com técnicas específicas para aquela versão do WordPress.

Passo 05 – Oculte a versão do WordPress

É óbvio! Se existem ferramentas para hackear falhas em determinadas versões do WordPress, fica muito mais fácil saber a ferramenta a ser utilizada se o blog publica qual a versão do wordpress que ele utiliza.

Abra seu arquivo function.php e adicione a seguinte linha:

remove_action('wp_head', 'wp_generator');

Passo 06 – Mude as permissões dos arquivos

É muito importante que você utilize as permissões corretas para os arquivos e pastas. Eu recomendo que você restrinja ao máximo as permissões. Abra seu programa FTP e com o botão direito sobre o arquivo e pasta seleciona a opção “File Permission”. nunca utilize “777”,  Você deveria estar utilizando o valor 744, dando o controle total apenas ao owner dos arquivos. Alguns usuários preferem utilizar 644 para arquivos e 755 para as pastas.

Para saber como melhor configurar as permissões, procure por mais informações sobre o comando CHMOD.

Passo 07 – WhiteList

Ao contrário da Lista Negra, a lista branca permite que apenas usuários determinados tenham acesso a sua área de administração. Vá até a pasta /wp-admin/ e edite o arquivo .htaccess incluindo as informações:


AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress - Controle de Acesso a Area Administrativa"
AuthType Basic

    order deny,allow
    deny from all

    # Whitelist seu endereco IP
    allow from xx.xx.xx.xxx

    # Whitelist o endereco IP do seu escritorio
    allow from xx.xx.xx.xxx

    # Whitelist outros enderecos IPs que voce podera utilizar
    allow from xx.xx.xx.xxx

Para verifica qual o endereço IP de sua máquina neste exato momento, clique em WhatsMyIP.org.

Passo 08 – Backup

Se nenhuma das técnicas acima resolver o problema, é bom que você tenha um backup atualizado da sua base de dados e arquivos. Nunca se esqueça de realizá-lo.


DBNAME=DB_NAME
DBPASS=DB_PASSWORD
DBUSER=DB_USER
EMAIL="you@your_email.com"
mysqldump --opt -u $DBUSER -p$DBPASS $DBNAME > backup.sql
gzip backup.sql
DATE=`date +%Y%m%d` ; mv backup.sql.gz $DBNAME-backup-$DATE.sql.gz
echo 'BLOG BACKUP:Your Backup is attached' | mutt -a $DBNAME-backup-$DATE.sql.gz $EMAIL -s "MySQL Backup"
rm $DBNAME-backup-$DATE.sql.gz

Passo 09 – Oculte seus plugins

Adicione a pasta /wp-content/plugins/ um arquivo index.html vazio, assim os arquivos e pastas não serão exibidos. É possível bloquear a listagem de arquivos em um diretório através das configurações do Apache (Directory Listing).

Passo 10 – Analise o arquivo do log de acessos

Esta é uma atividade muito importante! Permite que, através de uma analise de log de acessos ou do Google Analytics, sejam detectadas atividades estranhas em seu site como visitas a diretórios que nao deveriam estar sendo visitados, e etc.

Natural de Salvador-BA, é graduado em Analise de Sistemas pela Universidade Católica do Salvador (UCSal, 2003), e Especialista em Engenharia de Software pela Universidade Salvador (2010).