J'ai hérité d'un problème que personne dans mon bureau ne peut résoudre.
Le site Web de notre société contient des titres de page au format "Nom de la page Nom de la société - Nom de la société". La première instance de Nom de société est un doublon et doit être supprimée (ce devrait être Nom de page - Nom de société), mais je ne sais pas comment procéder en consultant le code. Il s'agit d'un thème personnalisé WP qui est un enfant du thème du stock 2014. Est-ce que quelque chose dans cet extrait de code de titre se démarque?
<title>
<?php
if (function_exists('is_tag') && is_tag()) {
single_tag_title("Tag Archive for ""); echo '" - '; }
elseif (is_archive()) {
wp_title(''); echo ' Archive - '; }
elseif (is_search()) {
echo 'Search for "'.wp_specialchars($s).'" - '; }
elseif (!(is_404()) && (is_single()) || (is_page())) {
wp_title(''); echo ' - '; }
elseif (is_404()) {
echo 'Not Found - '; }
if (is_home()) {
bloginfo('name'); echo ' - '; bloginfo('description'); }
else {
bloginfo('name'); }
if ($paged>1) {
echo ' - page '. $paged; }
?>
</title>
Vous êtes sur une page et si nous lisons la liste des conditionnelles, celle-ci devrait apparaître plus précisément:
elseif( ! ( is_404() ) && ( is_single() ) || ( is_page() ) ) {
wp_title( '' );
echo ' - ';
}
Il atteindra également la condition ci-dessous dans le prochain set:
else {
bloginfo( 'name' );
}
Étant donné la page Test Page
nous devrions voir Page Name - Company Name
mais le thème parent Twenty Fourteen a ce filtre sur wp_title()
:
function twentyfourteen_wp_title( $title, $sep ) {
global $paged, $page;
if ( is_feed() ) {
return $title;
}
// Add the site name.
$title .= get_bloginfo( 'name', 'display' );
// Add the site description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) ) {
$title = "$title $sep $site_description";
}
// Add a page number if necessary.
if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
$title = "$title $sep " . sprintf( __( 'Page %s', 'twentyfourteen' ), max( $paged, $page ) );
}
return $title;
}
add_filter( 'wp_title', 'twentyfourteen_wp_title', 10, 2 );
Notez que le nom du site Web est également ajouté au titre (directement après le contenu conditionnel), ce qui explique pourquoi nous voyons le nom de la société à deux reprises. Vous pouvez commenter la ligne ci-dessus pour supprimer la duplication.
function twentyfourteen_wp_title( $title, $sep ) {
global $paged, $page;
if ( is_feed() ) {
return $title;
}
// DONT Add the site name.
// $title .= get_bloginfo( 'name', 'display' );
// Add the site description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) ) {
$title = "$title $sep $site_description";
}
// Add a page number if necessary.
if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
$title = "$title $sep " . sprintf( __( 'Page %s', 'twentyfourteen' ), max( $paged, $page ) );
}
return $title;
}
add_filter( 'wp_title', 'twentyfourteen_wp_title', 10, 2 );
Vérifiez la add_theme_support( 'title-tag' );
https://make.wordpress.org/core/2014/10/29/title-tags-in-4-1/
function theme_slug_setup() {
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'theme_slug_setup' );
En déclarant un tel soutien, les thèmes reconnaissent qu'ils ne définissent pas eux-mêmes de titres et WordPress peut les ajouter en toute sécurité, sans les dupliquer.