Articles

Hogyan kapjuk meg az aktuális oldal címét a WordPressben

Néha szeretnénk megkapni az aktuális oldal címét, amely a <title> tagben jelenik meg. Itt az oldalra gondolok általános értelemben, nem a WordPress “oldalára”. Számos WordPress függvényünk van, amelyek segíthetnek, például:

  • get_the_title(): az aktuális post/page/any post type címének lekérdezése
  • single_cat_title(): az aktuális kategória címének lekérdezése. Vannak testvérfüggvények a címkékhez és a kifejezésekhez is: single_tag_title() és single_term_title()
  • get_bloginfo(): a blog nevének
  • stb.

Ezek a függvények használata nagyszerű, de van néhány hátrányuk:

  • Ezek a függvények bizonyos oldalakra, például egyetlen bejegyzés/oldal, kategória/tag, … oldalakra vonatkoznak. De sokféle oldaltípusunk lehet a WordPressben, mint például: 404 oldal, keresési találati oldal, archív oldal, vagy akár virtuális oldal.
  • A cím különbözőképpen jelenik meg a témákban: használhatsz olyan témát, amelynek címe Post Title | Blog Name formátumú, de egy másik téma csak Post Title formátumot használhat. A fenti funkciók kombinációjával elérheted a helyes címet, de ez nem lesz széles körben használható más témáknál.
  • Vagy a címet különböző módon állíthatod be a SEO pluginekkel

Ebben a bejegyzésben egy egyszerű trükköt fogok használni, amely gyorsan megoldja ezeket a problémákat.

Bizonyára mindannyian ismerjük a wp_title() függvényt, gyakran használjuk ezt a függvényt a header.php fájlban, például így:

<title><?php wp_title( '|', true, 'right' ); ?></title>

az oldal címének megjelenítésére (csak ezt a függvényt használd az oldal címének megjelenítésére, különben az oldalad talán nem kompatibilis a SEO pluginekkel, vagy teljesítményproblémát okoz).

A trükk az, hogy a $echo 2. paramétert true-ről false-re cseréljük, hogy megkapjuk az aktuális oldalcím értékét:

$title = wp_title( '|', false, 'right' );

Itt egy példa, ahol ez a technika hasznos. Egy Twitter gombot fogunk megjeleníteni. Egy másik klassz technikát fogok használni, hogy megkapjuk az aktuális oldal URL-jét:

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 ));

A fenti szkriptet (néhány kiegészítéssel a Facebook like, Google+ gombokhoz) jelenleg a weboldalaimhoz használom. És nagyszerűen működik az archív oldalakon, ahol a WordPress beépített funkciói nem túl hasznosak.