Hai thẻ tiêu đề trong tiêu đề của tôi


7

Tôi đang xây dựng một chủ đề con và nó hiện có một phần rất đơn giản <head>trong tiêu đề.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>

Tôi đoán wp_head()là chịu trách nhiệm cho <title>yếu tố thứ hai (nó xuất hiện ở đó trong HTML cuối cùng), nhưng những điều khác tôi đã đọc nói điều này là không thể.

Tôi có nên xóa tiêu đề <title>khỏi tệp.php của mình không, hay tôi nên thêm một cái gì đó vào các chức năng của mình để xóa tiêu đề khỏi wp_head()(ví dụ. remove_action('wp_head', 'title')?

Hay tôi nên làm một cái gì đó khác hoàn toàn?


Tôi chỉ nhận thấy rằng vấn đề này cũng xảy ra trong chủ đề gốc (phụ huynh). Huh!
Django Reinhardt

3
Bạn có đang sử dụng Wordpress 4.1 và một chủ đề được viết cho 4.1. Nếu vậy, thì bạn nên có dòng này ở đâu đó trong hàm.php add_theme_support( 'title-tag' );. Điều này sẽ giải thích hai thẻ tiêu đề. Tính năng này được giới thiệu trong 4.1 và tự động thêm wp_title()thẻ vào tiêu đề. Nếu vậy, chỉ cần sao chép tiêu đề chủ đề cha mẹ của bạn vào chủ đề con của bạn và xóa wp_title()thẻ trong tiêu đề.php
Pieter Goosen

Niềm vui của tôi, rất vui vì nó đã làm việc Thưởng thức
Pieter Goosen

3
@PieterGoosen Tôi nghĩ bình luận của bạn nên được đưa ra thành câu trả lời ;-)
birgire 22/03/2015

@birgire xong, cảm ơn bạn đã gợi ý. Cũng mở rộng thêm một chút :-)
Pieter Goosen

Câu trả lời:


10

Hai thẻ tiêu đề có thể được giải thích là bạn đang sử dụng một chủ đề được viết cho Wordpress4.1 và thực sự đang sử dụng 4.1. Kể từ ngày 4.1, bạn không cần phải gọi wp_title()vào đầu nữa, bạn có thể sử dụng title_tagthẻ hỗ trợ chủ đề mới tự động thêm wp_title()thẻ vào tiêu đề

Chủ đề chính mà bạn đang sử dụng có lẽ đã làm điều này. Hãy tìm trong Hàm.php của bạn để biết dòng mã này

add_theme_support( 'title-tag' );

Như một giải pháp, sao chép chủ đề gốc header.phpsang chủ đề con của bạn và chỉ cần xóa wp_title()chức năng khỏi chủ đề conheader.php

Đây cũng là một chức năng tuyệt vời cần ghi nhớ để tương thích ngược và rất hữu ích cho các nhà phát triển chủ đề gốc: ( Lấy từ bộ mã )

 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' );
}

-3

Tại function.phptập tin trong mã nhận xét chủ đề của bạn

//add_theme_support( 'title-tag' );

1
Điều này là hoàn toàn sai và sẽ không bao giờ hoạt động
Pieter Goosen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.