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é.