Jak získat aktuální název stránky ve WordPressu
Někdy chceme získat aktuální název stránky, který se zobrazuje v tagu <title>
. Zde mám na mysli stránku v obecném významu, nikoli „stránku“ WordPressu. Máme několik funkcí WordPressu, které nám mohou pomoci, například:
-
get_the_title()
: pro získání aktuálního názvu příspěvku/stranky/jakéhokoli typu příspěvku -
single_cat_title()
: pro získání aktuálního názvu kategorie. Existují také sourozenecké funkce pro značky a termíny:single_tag_title()
asingle_term_title()
-
get_bloginfo()
: pro získání názvu blogu - atd.
Používání těchto funkcí je skvělé, ale má některé nevýhody:
- Tyto funkce jsou specifické pro konkrétní stránky, jako jsou jednotlivé příspěvky/stránky, kategorie/tagy, … stránky. Ve WordPressu však můžeme mít mnoho typů stránek, jako např:
- Titul se v tématech zobrazuje různě: můžete použít téma, které má titulek ve formátu
Post Title | Blog Name
, ale jiné téma může používat pouzePost Title
. Můžete vytvořit kombinaci výše uvedených funkcí, abyste dosáhli správného title, ale to se u jiných témat nebude široce používat. - Nebo můžete nastavit title různými způsoby pomocí pluginů SEO
V tomto příspěvku použiji jednoduchý trik, který může tyto problémy rychle vyřešit.
Jistě všichni známe funkci wp_title()
, často ji používáme v souboru header.php
, například takto:
<title><?php wp_title( '|', true, 'right' ); ?></title>
pro zobrazení nadpisu stránky (pro zobrazení nadpisu stránky byste měli používat pouze tuto funkci, jinak váš web možná nebude kompatibilní s pluginy SEO nebo způsobí problém s výkonem).
Tento trik spočívá v přepnutí 2. parametru $echo
z true
na false
, abyste získali hodnotu aktuálního názvu stránky:
$title = wp_title( '|', false, 'right' );
Tady je příklad, kde je tato technika užitečná. Budeme zobrazovat tlačítko Twitter. Použiji další skvělou techniku pro získání aktuální adresy URL stránky:
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 ));
V současné době používám výše uvedený skript (s několika doplňky pro tlačítka Facebook like, Google+) pro své webové stránky. A skvěle funguje na archivních stránkách, kde vestavěné funkce WordPressu nejsou příliš užitečné.