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á!