Para quem trabalha com o WordPress regularmente para criar sites de vários tipos, como por exemplo criar sites de compras coletivas, criar diretórios de artigos, criar sites de notícias como o Dihitt, criar sites de emprego, etc., a utilização de algumas das funções nativas do WordPress pode ser extremamente importante, principalmente quando você cria um projeto que tem como objetivo não se parecer com o próprio WordPress. Recentemente os colegas do digwp falaram sobre redireccionamentos, e neste artigo vamos dar-lhe a conhecer vários tipos de redireccionamentos que o próprio WordPress permite, e que na verdade possibilitam-lhe redireccionar os seus usuários para páginas internas ou externas, para a mesma página onde estavam, etc.

FUNÇÃO WP_REDIRECT
A função wp_redirect é uma função para redireccionar todos os usuários para um endereço URL absoluto. URLs absolutos são basicamente endereços URL completos deste género:
- https://www.escolawp.com/
- https://www.escolawp.com/2011/02/porque-e-que-o-wordpress-e-melhor-que-o-blogger/
- https://www.escolawp.com/contactos/
Para redireccionar os seus usuários usando a função wp_redirect, copie e cole o seguinte trecho de código para o ficheiro do seu template wordpress:
<?php wp_redirect('http://exemplo.com/'); exit; ?>
Os parâmetros da função wp_redirect são dois em número:
- $location = O URL absoluto para o qual o usuário será redireccionado. Não existe padrão.
- $status = O código de estado usado. Por exemplo,
301,302, etc. O padrão é302.
Você poderá usar as template tags para o parâmetro $location, por exemplo:
<?php // redirect to the home page wp_redirect(home_url()); exit; ?> <?php // redirect back to current page wp_redirect(get_permalink()); exit; ?>
Para usar um código de estado que não seja o padrão 302, especifique-o desta forma:
<?php wp_redirect('http://exemplo.com/', 301); exit; ?>
Este código irá enviar o usuário para a página exemplo.com juntamente com o código de estado 301 (Movido permanentemente). O código padrão 302 deverá ser usado para redireccionamentos temporários.
FUNÇÃO AUTH_REDIRECT
A função auth_redirect, é uma função simples que basicamente obriga o usuário a fazer o login para que possa aceder a determinadas páginas ou conteúdos. Por exemplo, imaginemos que você tem uma página de “downloads” que apenas é acessível a usuários registrados. Para prevenir o acesso a essa página por usuários que não fazem login, adicionaríamos o seguinte código no topo dessa mesma página:
<?php auth_redirect(); ?>
Esta função extremamente útil, verifica se o usuário está logado ou não no site, e redirecciona-o para a página de login caso não esteja. Por padrão, o usuário será redireccionado de volta para a página de onde veio (ex., a página de downloads). De momento esta função não aceita parâmetros.
FUNÇÃO WP_LOGOUT_URL
A função wp_logout_url retorna um URL da página de logout do seu blog. Mas poderá redireccionar o usuário para qualquer outro URL usando o parâmetro $redirect:
<?php echo wp_logout_url($redirect); ?>
O parâmetro $redirect é basicamente uma string de redireccionamento de URL. Alguns exemplos:
<!-- Logout & redirect to the home page -->
<a href="<?php echo wp_logout_url(home_url()); ?>">Logout</a>
<!-- Logout & redirect to current page -->
<a href="<?php echo wp_logout_url(get_permalink()); ?>">Logout</a>
<!-- Logout & redirect to specific URL -->
<a href="<?php echo wp_logout_url('http://exemplo.com/'); ?>">Logout</a>
A linkagem de logout automática é fabulosa.
FUNÇÃO IS_USER_LOGGED_IN
Por fim temos a função is_user_logged_in, que tecnicamente não faz qualquer tipo de redireccionamento, mas permite-lhe verificar se o usuário está ligado ou não. Eis um exemplo que deverá funcionar em qualquer template de página:
<?php if (is_user_logged_in()) { echo "logged in"; } else { echo "not logged in" } ?>
A função is_user_logged_in retorna valores TRUE ou FALSE, dependendo do estado do usuário. Portanto, para mostrar conteúdos customizados quando o usuário está ligado, você poderá usar o seguinte código:
<?php if (is_user_logged_in()) { ?>
<p>Bem-Vindo, usuário!</p>
<?php } else { // not logged in ?>
<p>Bem-Vindo, visitante!</p>
<?php } ?>
Se desejar, poderá ainda usar a função is_user_logged_in juntamente com outras template tags e códigos PHP para retornar resultados mais definidos. Por exemplo, poderemos servir conteúdos customizados a usuários que esteja ligados e numa determinada localização do seu site/blog:
<?php if (is_user_logged_in()) {
if (is_page()) {
echo "Logged-in user visiting a page";
} elseif (is_feed()) {
echo "Logged-in user viewing a feed";
} elseif (is_search()) {
echo "Logged-in user doing a search";
} else {
echo "Logged-in user doing something else";
}
} else { // user is not logged-in
if (is_page()) {
echo "Normal visitor on a page";
} elseif (is_feed()) {
echo "Normal visitor viewing a feed";
} elseif (is_search()) {
echo "Normal visitor doing a search";
} else {
echo "Normal visitor doing something else";
}
} ?>
Este exemplo demonstra a flexibilidade das tags condicionais do WordPress e como a função is_user_logged_in pode ser usada para controlar outro tipo de ações do usuário.
Até já!





