Articles

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() a single_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 pouze Post 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é.