Como obter o título atual da página em WordPress
Por vezes queremos obter o título atual da página, que é exibido em <title>
tag. Aqui eu quero dizer a página em geral, não a “página” do WordPress. Temos várias funções do WordPress que podem ajudar como:
-
get_the_title()
: para obter o título atual do post/página/qualquer tipo de post -
single_cat_title()
: para obter o título atual da categoria. Existem funções de irmãos para tags e termos também:single_tag_title()
esingle_term_title()
-
get_bloginfo()
: para obter o nome do blog - etc.
Utilizar essas funções é ótimo, mas elas têm algumas desvantagens:
- As funções são específicas para páginas particulares como um único post/página, categoria/etiqueta, … páginas. Mas nós podemos ter muitos tipos de páginas no WordPress como: 404 páginas, página de resultados de pesquisa, página de arquivo, ou mesmo página virtual.
- O título exibido diferentemente em temas: você pode usar um tema que tenha título no formato
Post Title | Blog Name
, mas outro tema pode usar apenasPost Title
. Você pode fazer uma combinação das funções acima para conseguir o título correto, mas isso não será usado amplamente para outros temas. - Or você pode definir o título de várias maneiras com plugins SEO
Neste post, vou usar um truque simples que pode resolver esses problemas rapidamente.
Tenho a certeza que todos nós estamos familiarizados com a função wp_title()
, usamos frequentemente esta função em header.php
ficheiro, como este:
<title><?php wp_title( '|', true, 'right' ); ?></title>
para mostrar o título da página (deve usar apenas esta função para mostrar o título da página, caso contrário o seu site pode não ser compatível com plugins SEO ou causar problemas de desempenho).
O truque é mudar o 2º parâmetro $echo
de true
para false
para obter o valor do título da página actual:
$title = wp_title( '|', false, 'right' );
Aqui está um exemplo onde esta técnica é útil. Vamos mostrar um botão do Twitter. Eu vou usar outra técnica legal para obter a URL da página atual:
global $wp;$link = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );$text = wp_title( '|', false );printf( '<iframe allowtransparency="true" frameborder="0" scrolling="no" src="https://platform.twitter.com/widgets/tweet_button.html?url=%s&text=%s&count=horizontal"></iframe>', urlencode( $link ), rawurlencode( $text ));
Utilho atualmente o script acima (com algumas adições para o Facebook como, botões do Google+) para os meus sites. E está funcionando muito bem em páginas de arquivo onde as funções do WordPress não são muito úteis.