Două tag-uri de titlu în header

22 mar. 2015, 19:53:27
Vizualizări: 14.7K
Voturi: 7

În prezent construiesc un child theme și am o secțiune <head> foarte simplă în header.php:

<head>
  <meta charset="<?php bloginfo( 'charset' ); ?>">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <title><?php wp_title( '|', true, 'right' ); ?></title>
  <link rel="profile" href="http://gmpg.org/xfn/11">
  <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
  <!--[if lt IE 9]>
  <script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/html5shiv.min.js"></script>
  <![endif]-->

  <?php wp_head(); ?>
</head>

Presupun că wp_head() este responsabil pentru al doilea element <title> (apare exact acolo în HTML-ul final), dar alte surse spun că acest lucru este imposibil.

Ar trebui să elimin tag-ul <title> din header.php, sau să adaug ceva în functions.php pentru a elimina titlul din wp_head() (de ex. remove_action('wp_head', 'title') ?

Sau ar trebui să fac altceva cu totul?

7
Comentarii

Tocmai am observat că această problemă apare și în tema originală (părinte). Hm!

Django Reinhardt Django Reinhardt
22 mar. 2015 20:06:18

Folosești WordPress 4.1 și o temă scrisă pentru 4.1? Dacă da, atunci ar trebui să ai undeva în functions.php această linie: add_theme_support( 'title-tag' );. Aceasta ar trebui să explice cele două tag-uri de titlu. Această funcționalitate a fost introdusă în 4.1 și adaugă automat tag-ul wp_title() în header. Dacă e cazul, pur și simplu copiază header.php din tema părinte în tema copil și șterge tag-ul wp_title() din header.php

Pieter Goosen Pieter Goosen
22 mar. 2015 20:19:24

Cu plăcere, mă bucur că a funcționat. Distrează-te!

Pieter Goosen Pieter Goosen
22 mar. 2015 20:39:22

@PieterGoosen Cred că comentariul tău ar trebui transformat în răspuns ;-)

birgire birgire
22 mar. 2015 22:02:24

@birgire am făcut-o, mulțumesc pentru sugestie. Am extins și puțin :-)

Pieter Goosen Pieter Goosen
23 mar. 2015 06:27:20

super, sunt sigur că va fi util, deoarece aceasta pare a fi o problemă comună. @PieterGoosen

birgire birgire
23 mar. 2015 10:49:38

@birgire se pare că da :-). Sper că toată lumea va găsi acest lucru util în viitorul apropiat.

Pieter Goosen Pieter Goosen
23 mar. 2015 11:00:04
Arată celelalte 2 comentarii
Toate răspunsurile la întrebare 2
0
10

Cele două tag-uri de titlu pot fi explicate prin faptul că utilizați o temă care este scrisă pentru WordPress 4.1 și de fapt folosiți versiunea 4.1. Începând cu versiunea 4.1, nu mai este necesar să apelați wp_title() în head, puteți utiliza noul tag de suport pentru temă title_tag care adaugă automat tag-ul wp_title() în header.

Tema părinte pe care o utilizați face probabil deja acest lucru. Căutați în fișierul functions.php următoarea linie de cod:

add_theme_support( 'title-tag' );

Ca soluție, copiați fișierul header.php din tema părinte în tema copil și pur și simplu eliminați funcția wp_title() din fișierul header.php al temei copil.

Iată și o funcție utilă de reținut pentru compatibilitate inversă și este folositoare pentru dezvoltatorii de teme părinte: (Preluat din codex)

 if ( ! function_exists( '_wp_render_title_tag' ) ) {
    function theme_slug_render_title() 
    {
        ?>
        <title>
            <?php wp_title( '|', true, 'right' ); ?>
        </title>
        <?php
    }
    add_action( 'wp_head', 'theme_slug_render_title' );
}
23 mar. 2015 06:26:40
1
-3

În fișierul function.php al temei tale, comentează codul

//add_theme_support( 'title-tag' );
3 feb. 2016 11:50:55
Comentarii

Acest lucru este complet greșit și nu va funcționa niciodată

Pieter Goosen Pieter Goosen
3 feb. 2016 12:01:17