web-dev-qa-db-ja.com

ヘッダーに2つのタイトルタグ

私は子テーマを作成しています。現在、header.phpに非常に単純な<head>セクションがあります。

<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>

私はwp_head()が2番目の<title>要素を担当していると思います(それは最後のHTMLのちょうどそこに現れます)、私が読んだ他のものはこれが不可能であると言います。

Header.phpから<title>を削除する必要がありますか、それともwp_head()からタイトルを削除するために関数に何かを追加する必要がありますか?(例:remove_action('wp_head', 'title'

それとも私は他の何かを完全にするべきですか?

6

2つのタイトルタグは、Wordpress4.1用に書かれたテーマを使っていて、実際には4.1を使っていると説明できます。 4.1以降、頭の中で wp_title() を呼び出す必要はなくなりました。ヘッダーにwp_title()タグを自動的に追加する新しいtitle_tagテーマサポートタグを使用できます

あなたが使っている親テーマは、おそらくすでにこれをやっています。このコード行については、functions.phpを調べてください。

add_theme_support( 'title-tag' );

解決策としては、親テーマheader.phpをあなたの子テーマにコピーし、その子テーマからwp_title()関数を削除してください。header.php

これは後方互換性のために覚えておくべき素晴らしい機能でもあり、親テーマ開発者にとって有用です:( 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' );
}
9
Pieter Goosen