WordPress wp titre blanc sur la page d'index
Je suis nouveau à WordPress et vient d'installer la version 3.3.1.
j'ai fait quelques recherches sur Google à propos de cette question et j'ai trouvé des réponses mais elles étaient pertinentes à la version 2.7 et avaient 2-3 ans.
en gros, le wp_title
fonction fonctionne très bien sur toutes les pages sauf la page d'accueil où il renvoie vide et je n'ai pas de titre que ce soit. Je pourrais juste coder le titre, mais je préfère ne pas le faire.
<title><?php wp_title ( '| So Fresh n' So Clean', true,'right' ); ?></title>
je Je n'ai rien trouvé à propos de ce problème qui se passe en 3.3.1 donc clairement j'ai fait quelque chose de mal.
11 réponses
voici ce que j'ai lu de Codex:
si vous utilisez une page d'accueil personnalisée avec des boucles et des trucs personnalisés, vous aura un vide
wp_title
. Voici un hack soigné pour ajouter le description / tagline auwp_title
place sur la page d'accueil:
<title><?php bloginfo('name'); ?> | <?php is_front_page() ? bloginfo('description') : wp_title(''); ?></title>
alors utilisez is_front_page()
pour obtenir le titre sur la page d'accueil, la façon dont il est suggéré dans le code ci-dessus.
mais si vous utilisez une page d'accueil statique, voici le code:
<title><?php bloginfo('name'); ?> » <?php is_front_page() ? bloginfo('description') : wp_title(''); ?></title>
en partant de la réponse D'Amna, j'ai trouvé le code suivant qui devrait afficher le titre de la page quand il y en a un, suivi du nom du site.
<?php wp_title(' - ',TRUE,'right'); bloginfo('name'); ?>
Post/Page De Sortie: "Le Titre De La Page - Nom Du Site"
Page D'Accueil De Sorties: "Nom Du Site"
Évidemment, cela peut aussi être échangé pour afficher le nom du site en premier.
<?php bloginfo('name'); wp_title(' - '); ?>
Post/Page De Sortie: "Nom Du Site - Le Titre De La Page"
Page D'Accueil De Sorties: "Site Le nom de"
cela peut aussi être combiné avec une condition pour afficher la description du site lors de la visualisation de la page d'accueil.
<?php bloginfo('name'); echo ' - '; is_front_page() ? bloginfo('description') : wp_title(''); ?>
Post/Page De Sortie: "Nom Du Site - Le Titre De La Page"
Page D'Accueil De Sorties: "Nom Du Site - La Description Du Site"
mise à Jour
Essayez ceci
function some_name(){
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', some_name );
le Faire dans les fonctions.php et supprimer "titre" de la balise de la tête...
Pour la recherche google sur wordpress wp_title vide c'est le premier résultat. J'ai donc pensé que je pourrais partager la solution la plus élégante pour cela.
Dans les fonctions.php ajouter un filtre pour wp_title.
function custom_wp_title( $title, $sep ) {
if ( is_feed() ) {
return $title;
}
global $page, $paged;
// Add the blog name
$title .= get_bloginfo( 'name', 'display' );
// Add the blog description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) ) {
$title .= " $sep $site_description";
}
// Add a page number if necessary:
if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
$title .= " $sep " . sprintf( __( 'Page %s', '_s' ), max( $paged, $page ) );
}
return $title;
}
add_filter( 'wp_title', 'custom_wp_title', 10, 2 );
j'utilise celui-ci et il n'a jamais manqué:
function pageTitle($echo){
$title = "";
global $paged;
if (function_exists('is_tag') && is_tag()) {
$title .= single_tag_title(__("Tag Archive for "" , 'circle'),false);
$title .= '" - ';
}
elseif (is_archive()) {
$title .= wp_title('',true);
//$title .= __(' Archive - ' , 'circle');
$title .= __(' - ' , 'circle');
}
elseif (is_search()) {
$title .= __('Search for "' , 'circle') . esc_html(get_search_query()).'" - ';
}
elseif (!(is_404()) && (is_single()) || (is_page())) {
$title .= wp_title('',true);
$title .= ' - ';
}
elseif (is_404()) {
$title .= __('Not Found - ' , 'circle');
}
if (is_home()) {
$title .= get_bloginfo('name');
$title .= ' - ';
$title .= get_bloginfo('description');
}
else {
$title .= get_bloginfo('name');
}
if ($paged>1) {
$title .= ' - page ' . $paged;
}
if ( !$echo ) return $title;
echo $title;
}
notez qu'il y a des domaines de traduction que vous pourriez vouloir changer.
Le nouveau hack du Codex est comme suit:
<title><?php wp_title(''); ?></title>
puis dans vos " fonctions.php" à partir de fichier de thème :
add_filter( 'wp_title', 'baw_hack_wp_title_for_home' );
function baw_hack_wp_title_for_home( $title )
{
if( empty( $title ) && ( is_home() || is_front_page() ) ) {
return __( 'Home', 'theme_domain' ) . ' | ' . get_bloginfo( 'description' );
}
return $title;
}
j'utilise cette méthode dans mon site WordPress
//Meta Header
if ( ! function_exists( 'dima_wp_title' ) ) :
function dima_wp_title( $title ) {
if ( is_front_page() ) {
return get_bloginfo( 'name' ) . ' | ' . get_bloginfo( 'description' );
} elseif ( is_feed() ) {
return ' | RSS Feed';
} else {
return trim( $title ) . ' | ' . get_bloginfo( 'name' );
}
}
add_filter( 'wp_title', 'dima_wp_title' );
endif;
Fin de la conversation...
Mais si vous voulez utiliser le titre de la page que vous êtes en utilisant pour la page d'accueil statique, vous pouvez utiliser le code suivant:
if (is_front_page())
{
$title = single_post_title( '', false );
}
bien que, dans la source actuelle pour wp_title (), il y ait ce qui suit, spécifiquement désactivant ceci pour la page de couverture statique:
if ( is_single() || ( is_home() && ! is_front_page() ) || ( is_page() && ! is_front_page() ) ) {
$title = single_post_title( '', false );
}
je soupçonne qu'il ya de bonnes raisons pour cela. Donc, procédez avec prudence.
mes 2 cents pour le thème "misty lake" qui n'avait aucun titre sur la page d'accueil et a ajouté un titre incorrect sur toutes les autres pages.
il suffit de supprimer la ligne suivante de l'en-tête.php résout le problème, depuis Wordpress injecte maintenant le tag par lui-même:
<title><?php wp_title( '|', true, 'right' ); ?></title>
j'ai consulté la page suivante – https://make.wordpress.org/themes/2015/08/25/title-tag-support-now-required/
Vous pouvez aussi mettre quelque chose comme ça dans votre étiquette de titre:
<?php
if (is_front_page()) { ?>
Home | <?php bloginfo('description');
} else {
wp_title('|', 'true', 'right'); bloginfo('description');
} ?>