Geben Sie den Kategorietitel in wp_title ein

Ich benutze dies in functions.php um meine Seite </code> auszugeben: </p> <pre> <code>/** * 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 );</code> </pre> <p> Ich möchte den <strong>Top-Level-Kategorienamen</strong> auf Unterseiten einfügen. </p><ul><li><a href="http://de.wordpressask.com/nachdem-ich-den-titel-gesetzt-habe-hat-er-alle-titel-fur-die-einzelnen-seiten-uberschrieben.html" rel="bookmark" title="Nachdem ich den Titel gesetzt habe, hat er alle Titel für die einzelnen Seiten überschrieben">Nachdem ich den Titel gesetzt habe, hat er alle Titel für die einzelnen Seiten überschrieben</a></li><li><a href="http://de.wordpressask.com/so-entfernen-sie-eine-bestimmte-zeichenfolge-aus-dem-tag-einer-wordpress-seite.html" rel="bookmark" title="So entfernen Sie eine bestimmte Zeichenfolge aus dem -Tag einer WordPress-Seite">So entfernen Sie eine bestimmte Zeichenfolge aus dem -Tag einer WordPress-Seite</a></li><li><a href="http://de.wordpressask.com/so-legen-sie-den-benutzerdefinierten-titel-der-benutzerdefinierten-seitenvorlage-fest.html" rel="bookmark" title="So legen Sie den benutzerdefinierten Titel der benutzerdefinierten Seitenvorlage fest">So legen Sie den benutzerdefinierten Titel der benutzerdefinierten Seitenvorlage fest</a></li><li><a href="http://de.wordpressask.com/andere-die-ausgabe-von-wp_title.html" rel="bookmark" title="Ändere die Ausgabe von wp_title ()">Ändere die Ausgabe von wp_title ()</a></li><li><a href="http://de.wordpressask.com/andern-sie-den-seitentitel-dynamisch-bevor-die-kopfzeile-gerendert-wird.html" rel="bookmark" title="Ändern Sie den Seitentitel dynamisch, bevor die Kopfzeile gerendert wird">Ändern Sie den Seitentitel dynamisch, bevor die Kopfzeile gerendert wird</a></li><li><a href="http://de.wordpressask.com/benutzerdefinierte-wp-tile-von-benutzerdefinierten-vorlagen-mit-dynamischer-url-struktur.html" rel="bookmark" title="Benutzerdefinierte WP TIle von benutzerdefinierten Vorlagen mit dynamischer URL-Struktur">Benutzerdefinierte WP TIle von benutzerdefinierten Vorlagen mit dynamischer URL-Struktur</a></li></ul> <p> Zum Beispiel derzeit mit einer Site-Struktur von diesem: </p> <ul> <li> Zuhause </li> <li> Über </li> <li> Arbeit <ul> <li> Groß </li> <li> Klein </li> </ul> </li> <li> Kontakt </li> </ul> <p> Beiträge in der Kategorie “Groß” geben einen Seitentitel wie diesen aus: </p> <p> <code><title>$postname | $blog_name

Ich möchte, dass die Ausgabe wie folgt aussieht:

$postname | Work | $blog_name

Daher wird der Kategoriename der obersten Ebene hinzugefügt, nicht jedoch die Kategorie der sekundären Ebene (Large).

Solutions Collecting From Web of "Geben Sie den Kategorietitel in wp_title ein"

Erstellen Sie eine Hilfsfunktion, um alle übergeordneten Kategorien zu erhalten (jeder Beitrag kann aus mehreren Kategorien bestehen):

 function parent_cat_names( $sep = '|' ) { if ( ! is_single() or array() === $categories = get_the_category() ) return ''; $parents = array (); foreach ( $categories as $category ) { $parent = end( get_ancestors( $category->term_id, 'category' ) ); if ( ! empty ( $parent ) ) $top = get_category( $parent ); else $top = $category; $parents[ $top->term_id ] = $top; } return esc_html( join( $sep, wp_list_pluck( $parents, 'name' ) ) ); } 

Fügen Sie den übergeordneten Begriff mit … hinzu

 if ( '' !== $parent_cats = parent_cat_names( $sep ) ) $title .= "$parent_cats $sep ";