I’m using this in functions.php
to output my page <title>
:
/**
* Creates a nicely formatted and more specific title element text
* for output in head of document, based on current view
*
* @param string $title Default title text for current view
* @param string $sep Optional separator
* @return string Filtered title
*/
function sitename_wp_title( $title, $sep ) {
global $paged, $page;
if ( is_feed() )
return $title;
// Adds the site name
$title .= get_bloginfo( 'name' );
// Adds the site description for the front page
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_front_page() ) )
$title = "$title $sep $site_description";
// Adds a page number if necessary
if ( $paged >= 2 || $page >= 2 )
$title = "$title $sep " . sprintf( __( 'Page %s' ), max( $paged, $page ) );
return $title;
}
add_filter( 'wp_title', 'sitename_wp_title', 10, 2 );
I’d like to include the top level category name on sub pages.
For example currently with a site structure of this:
- Home
- About
- Work
- Large
- Small
- Contact
Posts in the “Large” category will output a page title like this:
<title>$postname | $blog_name</title>
I’d like the output to be:
<title>$postname | Work | $blog_name</title>
So the top-level category name is added, but not the secondary level category (Large).
Create a helper function to get all parent categories (each post can be in multiple categories):
Add the parent term with â¦